jenkins 如何在脚本化管道中将阶段设置为不稳定

xmjla07d  于 2023-04-20  发布在  Jenkins
关注(0)|答案(1)|浏览(135)

在脚本管道中,我试图检查下游作业的状态。如果下游作业失败,我想将阶段设置为不稳定。我正在尝试下面的代码,但它不起作用

if (JOBRUN == "true" ){
    def downstream = build job: "/project/A/${env.BRANCH}", wait: true
    if (downstream.getResult() != 'SUCCESS') {
        unstable(message: "Downstream job result is ${downstream.result}")
    }
}

我也试过这个选项

def downstream = build (job: "/project/A/${env.BRANCH}", wait: true).result
if (downstream.getResult() != 'SUCCESS') {
            unstable(message: "Downstream job result is ${downstream.result}")
        }
qni6mghb

qni6mghb1#

Jenkins自动向上传播构建结果,因此您不必专门从方法中获取结果,因为结果会反映在上游构建作业的状态中。相反,您可以捕获错误并从代码中更改结果。例如:

script {
    try {
        build job: 'yourjob', wait: true
    } catch (err) {                                        
        unstable(message: "abc")
    }
}

因此,在上面的情况下,如果yourjob失败,则触发该作业的整个阶段也将失败。但是,由于正在捕获失败,因此错误将转换为unstable,并带有您指定的任何消息。

相关问题