首页 > 解决方案 > 如何在jenkinsfile中将内部版本号从一个作业传递到另一个作业以进行构建作业?

问题描述

我有一种情况,一个作业的内部版本号必须传递给另一个作业,下一个作业将使用它作为参数。

 stages {
         stage('Build Job1') {
            steps {
              script {

                   build job: "001_job" 
                   $build_001= env.BUILD_NUMBER of 001_job                  
                echo env.BUILD_NUMBER //this echos the build number of this job and not 001_job
            }
            }   
        }    
      stage('job_002') {
            steps {
              script {

                   build job: "job_002", parameters: [string(name: "${PAYLOAD_PARAM}", value: "$build_001")]
            }
            }   
        }  
   }
}  

标签: jenkinsjenkins-pipeline

解决方案


我想出了一个办法来做到这一点。需要有一个全局环境变量,然后通过函数分配内部版本号,如下面的解决方案:

pipeline {
    environment {
        BUILD_NUM = ''

    }
    agent {
        label 'master'
    }
 stages {
         stage('Build Job1') {
            steps {
              script {

                  def  build job: "001_job" 
                   def build_num1 = build_job.getNumber()
                 BUILD_NUM = "${build_num1}"
                 echo BUILD_NUM  //build number of oo1/job
            }
            }   
        }    
      stage('job_002') {
            steps {
              script {

                   build job: "job_002", parameters: [string(name: "${PAYLOAD_PARAM}", value: BUILD_NUM))]
            }
            }   
        }  
   }
}  

推荐阅读