在我的大多数 jenkins 工作中,我都有 bash 脚本。
在某些情况下,我想使我的构建不稳定。
当我以代码 0 退出脚本时,构建以成功(绿色(结束,当我使用另一个代码退出时,作业失败(红色(。
有没有办法从 bash 脚本中使 jenkins 作业不稳定(黄色(?
如果您使用管道插件并用时髦的pipline dsl编写作业,是的:
try {
sh "yourscript.sh"
} catch(Exception e) {
currentBuild.result = 'UNSTABLE'
}
Jenkins 旨在设置脚本退出代码为 1 时的自动失败。有很多方法可以覆盖它,但大多数都涉及 Jenkins CLI 或插件。使用 shell https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/命令的 returnStatus 标志,Jenkins 不会自动失败,而是返回状态代码。
以下是文档:
返回状态(可选(通常,以非零状态代码退出的脚本将导致步骤失败并出现异常。如果选中此选项,则步骤的返回值将是状态代码。例如,您可以将其与零进行比较。
script{
def returnVal = sh(
returnStatus: true,
script: '''
**your script here**
'''
)
if(returnVal != 0) {
currentBuild.result = 'UNSTABLE'
}
}