以下のスクリーンショットでは、一部のデバッグエントリに出力テキストが表示され(末尾に- Print Message
が付いています)、他のデバッグエントリは単にPrint Message
を表示しています。これらを表示するには、ステップを展開して出力を表示する必要があります。
すべての行はprint "TEXT HERE"
という形式を使用しています。 print
、println
、echo
を使用してみました。すべて同じ出力です。
なぜこれらは時々メッセージを表示しますが、他の人はそれを折りたたまれたセクションに強制しますか?これを常に表示するように構成することはできますか? Blue Ocean以外の通常のJenkinsインターフェースは正常に表示されますが、冗長性がたくさんあります。
これは既知の問題のようです: https://issues.jenkins-ci.org/browse/JENKINS-53649
BlueOceanがGroovy GStringsを正しく処理していないようです。これは私が観察したものです:
シンプルな:
echo "hello world"
期待どおりに動作し、正しく表示されます。一方、次のような変数を含むテンプレート化された文字列
echo "hello ${some_variable}"
[メッセージを印刷]ドロップダウンでメッセージを非表示にします。
この答え も参照してください。
Echoがparamsまたは環境からの値を持つ変数(つまり、「params。*」)を使用する場合、ステップラベルは、エコーされる実際の値の代わりに「メッセージの印刷」名を取得するようです。変数自体が文字列であるかどうかは関係ありません。 params値をStringに明示的に変換しても、役に立ちません。
String param_str
String text_var_2
parameters {
string(name: 'str_param', defaultValue: 'no value')
}
param_str = params.str_param.toString()
echo "string text in double quotes is ${param_str}"
echo "simple quoted string is here"
echo 'simple quoted string is here'
echo 'Single quoted with str ' + param_str + ' is here'
echo param_str
text_var_2 = 'Single quoted str ' + param_str + ' combined'
echo "GString global text2 is ${text_var_2}"
echo 'String global text2 is' + text_var_2
BlueOceanは、ステップラベルに単純な引用符付きの文字列を表示しますが、その他はすべて「メッセージの印刷」として表示します。
「通常の」変数(文字列、整数)はこの例には含まれていませんが、通常はラベルにも表示されています。したがって、このようなコードがある場合
def text_str = 'Some string'
def int_var = 1+2
echo text_str + ' is here'
echo int_var
これらはラベルに表示されます。
そして確かに、以前の回答で述べたように、それはジェンキンスの既知の問題のようです。
これは既知の BlueOceanバグ です。 「クラシック」ビューのコンソール出力は、変数を正しく補間します。
1つの回避策は shステップ のlabel
パラメータを使用することです:
def message = 'Hello World'
sh(script: "echo $message", label: message)
多くのことを試しましたが、環境変数が表示される瞬間にテキストの代わりにメッセージの印刷を使用しているようです。