You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Jenkins中被其他作业触发的Job的Build ID及参数传递方法

Jenkins跨Job传递构建ID与自定义变量实现方案

获取Job B的Build ID并传递给Job C

你直接通过Jenkins内置的build步骤调用下游Job即可,该步骤的返回值就是下游Job的构建实例对象,可直接读取构建ID等信息,示例写法如下:

pipeline {
  agent any
  stages {
    stage('执行Job B并调用Job C') {
      steps {
        script {
          // 调用Job B,wait:true表示等待Job执行完成,propagate:true表示Job B失败时自动终止当前Job
          def jobBRun = build job: 'Job B', wait: true, propagate: true
          // 读取Job B的构建ID
          def jobBBuildId = jobBRun.getNumber()
          echo "Job B执行成功,构建ID为:${jobBBuildId}"

          // 调用Job C时将构建ID作为参数传入
          build job: 'Job C', 
                parameters: [
                  string(name: 'some_var_used_in_Job_C', value: jobBBuildId.toString())
                ],
                wait: true
        }
      }
    }
  }
}

如果不需要Job B失败时自动终止当前Job,可以把propagate设置为false,自行通过jobBRun.getResult() == 'SUCCESS'判断执行结果后再走后续逻辑。

从Job B回传自定义变量到Job A

完全可以,有两种常用实现方式:

  • 少量变量直接通过构建环境变量传递:Job B的Jenkinsfile中把需要回传的值写入环境变量,Job A中通过构建实例的buildVariables属性直接读取即可。
    示例:Job B的Jenkinsfile中添加env.CUSTOM_PARAM = "需要传递的自定义值",Job A中直接用jobBRun.buildVariables.CUSTOM_PARAM就能拿到该值。
  • 大量结构化数据通过归档文件传递:Job B中把需要传递的内容写入json/properties等格式的文件,通过archiveArtifacts归档该文件;Job A拿到Job B的构建ID后,用copyArtifacts步骤从对应构建中拉取文件,解析后即可得到所有需要的值。

注意事项

  • 确保Job A的执行服务账号拥有Job B、Job C的构建权限和构建结果读取权限。
  • 若Job B在其他Jenkins文件夹下,调用时需要写全路径,比如build job: 'folder1/Job B'。

内容的提问来源于stack exchange,提问作者Aayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:36:03