将环境变量从父级作业传递到子级作业Jenkins管道

时间:2020-08-15 20:26:34

标签: jenkins environment-variables jenkins-pipeline gerrit-trigger

我有两个管道作业。

  1. 父项作业:该作业包含Gerrit触发器,并以创建的每个补丁集为基础。构建此作业后,我可以在“构建环境变量”部分中看到Gerrit环境变量。

  2. 子作业:仅当gerrit_branch不等于master时运行。

我想像父作业一样将所有Gerrit环境变量传递给该作业。

是否可以将所有env变量传递给子作业。

1 个答案:

答案 0 :(得分:1)

我接受了两个管道作业: Pipeline1(父作业)和pipelineB(子作业)

Pipeline1::我正在从存在Jenkinsfile的github上进行SCM检出,在Jenkinsfile中,我调用了pipelineB(子作业),并在其中传递了父作业环境变量(GIT_BRANCH)。

Pipeline1配置 enter image description here

Pipeline1的詹金斯文件

pipeline {
agent any
stages
{
    stage ('Build JobB')
    {
        steps {
           sh 'env'
           build job: 'pipelineB', parameters: [string(name: 'GITHUB_BRANCH', value: "${env.GIT_BRANCH}")]
       }
     }
   } 
 }

GIT_BRANCH在这里是环境变量。 (https://plugins.jenkins.io/git/#environment-variables

pipelineB :我使用了此构建已参数化选项,以捕获父作业(即Pipeline1)传递的环境值的值。然后,在管道脚本中使用该变量。

pipelineB配置 enter image description here enter image description here

请尝试一下。