Cae*_*lan 12 groovy jenkins jenkins-pipeline jenkins-blueocean
在下面的屏幕截图中,一些调试条目显示输出文本(- Print Message在末尾),而其他调试条目只显示Print Message.要查看这些,您必须展开步骤以查看输出.
所有行都使用该格式print "TEXT HERE".我已经尝试使用print,println和echo.都具有相同的输出.
为什么这些有时显示消息,而其他人强迫它进入折叠部分?是否可以将其配置为始终显示?正常的非蓝海詹金斯界面显示正常,但有很多冗长.
这似乎是一个已知问题:https : //issues.jenkins-ci.org/browse/JENKINS-53649
看起来 BlueOcean 没有正确处理 Groovy GStrings。这是我观察到的:
一个简单的:
echo "hello world"
Run Code Online (Sandbox Code Playgroud)
将按预期工作并正确显示。而带有变量的模板化字符串,例如:
echo "hello ${some_variable}"
Run Code Online (Sandbox Code Playgroud)
将在“打印消息”下拉菜单下隐藏消息。
另请参阅此答案。
看来,如果 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
Run Code Online (Sandbox Code Playgroud)
BlueOcean 在步骤标签中显示简单的带引号的字符串,但其他所有内容都显示为“打印消息”。
请注意,“普通”变量(字符串、整数)不包含在此示例中,但它们也正常显示在标签中。所以如果你有这样的代码
def text_str = 'Some string'
def int_var = 1+2
echo text_str + ' is here'
echo int_var
Run Code Online (Sandbox Code Playgroud)
这些将显示在标签上。
事实上,正如之前的回答中所述,这似乎是一个已知的 Jenkins 问题。
这是一个已知的BlueOcean bug。“经典”视图中的控制台输出正确插入变量。
一种解决方法是使用sh 步骤label的参数:
def message = 'Hello World'
sh(script: "echo $message", label: message)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2235 次 |
| 最近记录: |