访问下游作业中的上游作业参数

时间:2019-04-01 11:45:25

标签: jenkins jenkins-pipeline

我有一个参数化的上游版本A,应该尽可能保持不变。现在,我想使用声明性管道配置下游版本B。

因此,我在triggers部分的项目B的Jekinsfile中定义了与A的上游关系。但是现在,我不得不获取构建A的构建参数。

到目前为止,我遇到了以下想法:

  • 使用Jenkins job API(只有在无法直接在Jenkinsfile中指定此方法时,我才这样做)
  • 从我当前的观点来看,使用Parameterized Trigger Plugin是不可行的,因为当添加另一个下游作业时,我不想重新配置上游作业。

在工作B的Jenkins文件中,我想做这样的事情:

pipeline {
    agent docker
    environment {
        FOO = ""
    }
    triggers {
        upstream(upstreamProjects: 'A', threshold: hudson.model.Result.SUCCESS)
    }
    stages {
        stage('Print params') {
            steps {
                script {
                    // I would expect something like this to access the FOO variable of job A
                    // ${env.FOO} = job('A').params.FOO
                }
            }
        }
    }
}

我想直接从作业A访问触发作业B当前构建的构建参数。

1 个答案:

答案 0 :(得分:0)

只需对下游作业进行参数化并在调用中传递参数。

build job: 'your-downstream-job', parameters: [[$class: 'StringParameterValue', name: 'YOUR_STRING_PARAM', value: "${yourRandomGeneratedStringVariable}" ]]