如何通过管道构建Jenkins作业而忽略该作业是否不存在?

时间:2018-08-28 09:24:41

标签: jenkins jenkins-pipeline

我正在尝试通过我的Jenkins管道构建工作,像这样:

 build job:"${jobName}", propagate:false, wait:false

这里$ {jobName}是一个多分支管道作业,因此有时我的工作流中可能不存在。

如果作业不存在,此步骤会将我的构建标记为失败。 如果工作不存在,有没有办法简单地忽略并继续前进?

我试图像这样检查给定的工作是否存在:

    if(jenkins.model.Jenkins.instance.getItem("${jobName}") != null) {
        println("Preparing to build the ${jobName}...")
        build job:"${jobName}", propagate:false, wait:false
    } else {
        println("Not building the job ${jobName} as it doesn't exist")
    }

但是,这有时会失败(由于脚本安全?)。 有更好的方法吗? 我需要做的就是仅在存在的情况下建立工作。

1 个答案:

答案 0 :(得分:1)

如果使用脚本化管道,则可以添加try-catch块:

try {
    println("Preparing to build the ${jobName}...")
    build job:"${jobName}", propagate:false, wait:false
} catch (NullPointerException e) {
    println("Not building the job ${jobName} as it doesn't exist")
}