在下面的屏幕截图中,一些调试条目显示输出文本(末尾带有- Print Message ),而另一些只是显示Print Message。要查看这些内容,您必须展开该步骤以查看输出。

所有行都使用print "TEXT HERE"格式。我尝试过使用print、println和echo。所有的输出都是相同的。
为什么这些有时会显示消息,而另一些则会强制将其放入折叠的部分?是否可以将其配置为始终显示?正常的非蓝海Jenkins界面显示良好,但有很多冗长。
发布于 2018-11-06 02:50:20
这似乎是一个已知的问题:https://issues.jenkins-ci.org/browse/JENKINS-53649
看起来BlueOcean没有正确地处理Groovy。这是我观察到的:
一个简单的例子:
echo "hello world"将按预期工作,并将正确显示。而带有变量的模板化字符串,如:
echo "hello ${some_variable}"将在"Print Message“下拉列表中隐藏该消息。
另请参见this answer。
发布于 2019-05-24 01:51:10
看起来,如果echo使用一个带有params或environment值的变量(即"params.*"),那么步骤标签将获得"Print message“名称,而不是被回显的实际值。变量本身是不是字符串并不重要。即使显式地将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_2BlueOcean在步骤标签中显示简单的带引号的字符串,但其他内容都显示为“打印消息”。
请注意,“正常”变量(字符串、整数)不包括在此示例中,但它们也正常地显示在标签中。所以如果你有一个这样的代码
def text_str = 'Some string'
def int_var = 1+2
echo text_str + ' is here'
echo int_var这些将显示在标签上。
事实上,这似乎是一个已知的Jenkins问题,如前面的答案所述。
发布于 2019-10-25 20:27:15
这是已知的BlueOcean bug。“经典”视图中的控制台输出正确地插入变量。
一种解决方法是使用sh step的label参数
def message = 'Hello World'
sh(script: "echo $message", label: message)https://stackoverflow.com/questions/49564140
复制相似问题