我正在使用Jenkinsfile编写管道脚本。
有没有办法禁止在构建日志中打印已执行的shell命令?
下面是Jenkins管道的一个简单例子:
node{
stage ("Example") {
sh('echo shellscript.sh arg1 arg2')
sh('echo shellscript.sh arg3 arg4')
}
}
这将在控制台日志中生成以下输出:
[Pipeline] node
Running on master in /var/lib/jenkins/workspace/testpipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] sh
[testpipeline] Running shell script
+ echo shellscript.sh arg1 arg2
shellscript.sh arg1 arg2
[Pipeline] sh
[testpipeline] Running shell script
+ echo shellscript.sh arg3 arg4
shellscript.sh arg3 arg4
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
基本上,我想禁用打印命令本身。
+ echo shellscript.sh arg1 arg2
+ echo shellscript.sh arg3 arg4
2条答案
按热度按时间eoxn13cs1#
默认情况下,Jenkins使用
-xe
标志启动shell脚本。-x
启用额外的日志记录。-e
使脚本退出,如果其中任何命令返回非零退出状态。要重置标志,我建议两个选项:1.在脚本主体中调用
set +x
。1.通过自定义shebang行,无
-x
:至于第二个选项,您可以定义一个 Package 器函数以方便使用,该函数将在脚本前面添加自定义shebang,然后调用
sh
xqnpmsa82#
对于需要后处理的示例,我扩展了这里提供的原始解决方案。
例如
Package 函数
shell输出返回trim()并保存到“output”