如果另一个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-AJob-BJob-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(管道)。管道是为你的问题量身定做的,但是你必须接受教育。祝你好运。逻辑是,从这份工作中你会触发另一份工作