我正在尝试通过我的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")
}
但是,这有时会失败(由于脚本安全?)。 有更好的方法吗? 我需要做的就是仅在存在的情况下建立工作。
答案 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")
}