如何在Jenkins管道构建日志中禁用命令输出

我正在使用Jenkinsfile编写管道脚本。

有什么方法可以禁用在构建日志中打印执行的Shell命令吗?

这只是詹金斯管道的一个简单示例:

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

回答:

默认情况下,Jenkins使用标志启动shell脚本-xe-x启用其他日志记录。-e如果其中的任何命令返回非零退出状态,则使脚本退出。要重置标志,我建议两个选项:

  1. 调用set +x脚本主体。
  2. 通过定制的shebang行,而无需-xsh('#!/bin/sh -e\n' + 'echo shellscript.sh arg1 arg2')

至于第二个选项,您可以定义一个包装函数以方便使用,它将在脚本之前添加自定义shebang,然后调用 sh

def mysh(cmd) {

sh('#!/bin/sh -e\n' + cmd)

}

以上是 如何在Jenkins管道构建日志中禁用命令输出 的全部内容, 来源链接: utcz.com/qa/426506.html

回到顶部