如果另一个Jenkins作业也失败了,如何使一个Jenkins作业失败?
我需要詹金斯的帮助,我有一个独特的要求:如果另一个Jenkins作业也失败了,如何使一个Jenkins作业失败?,jenkins,jenkins-pipeline,jenkins-plugins,jenkins-job-dsl,jenkins-cli,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Job Dsl,Jenkins Cli,我需要詹金斯的帮助,我有一个独特的要求: 我有两个詹金斯作业,Job-A和Job-B,Job-A触发Job-B,等待完成Job,然后检查其完整状态(成功或失败),如果Job“失败”,那么Job-A也会发布“失败”状态,或者如果Job“成功”,那么Job-A也会发布“成功”状态 如何执行此操作,如何从Jenkins作业中检查另一个Jenkins作业的“完成状态”? 谢谢如果您使用的是Jenkins脚本化管道,它应该是这样的: node() { try { .... def jo
我有两个詹金斯作业,Job-A和Job-B,Job-A触发Job-B,等待完成Job,然后检查其完整状态(成功或失败),如果Job“失败”,那么Job-A也会发布“失败”状态,或者如果Job“成功”,那么Job-A也会发布“成功”状态 如何执行此操作,如何从Jenkins作业中检查另一个Jenkins作业的“完成状态”?
谢谢如果您使用的是Jenkins脚本化管道,它应该是这样的:
node() {
try {
....
def jobB = build(job: jobName,parameters: [])
def jobBStatus = jobB.getResult()
if(jobBStatus == "failed") {
throw new RuntimeException("Downstream job-b failed with reason ...");
}
...
}catch(Exception e) {
throw e
}
}
如果您使用的是Jenkins声明性管道,那么可以使用预构建groovy方法
pipeline {
agent any;
.....//steps, stage , script if any
def jobB = build(job: jobName,parameters: [])
def jobBStatus = jobB.getResult()
if(jobBStatus == "failed") {
error("Downstream job-b failed with reason ...")
}
}
@帕特尔,谢谢你的回复,我应该提到我是詹金斯的新手,从未使用过管道。我有以下问题:一,。我应该在作业“配置”部分中添加此管道脚本吗?2.“jobB.getResult()”中对getResult()的调用是否阻塞?因为我们需要等到jobB完成,请解释一下。听起来你在使用Jenkins 1(作业),而你需要的是Jenkins 2(管道)。管道是为你的问题量身定做的,但是你必须接受教育。祝你好运。逻辑是,从这份工作中你会触发另一份工作