如果作业不存在,如何从管道忽略管道构建 Jenkins 作业?



我正在尝试从我的 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")
}

但是,这有时会失败(由于脚本安全性? 有没有更好的方法? 我所需要的只是只在它存在时才建立一个工作。

如果使用脚本化管道,则可以添加 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")
}

最新更新