【问题标题】:Pass environment variables from parent job to child job Jenkins pipeline将环境变量从父作业传递到子作业 Jenkins 管道
【发布时间】:2020-12-05 09:22:11
【问题描述】:
我有两个管道作业。
-
父作业:此作业包含 Gerrit 触发器并基于创建的每个补丁集构建。构建此作业后,我可以在构建环境变量部分中看到 Gerrit 环境变量。
-
子作业:仅当 gerrit_branch 不等于 master 时才运行。
我想像父作业一样将所有 gerrit 环境变量传递给该作业。
有没有办法将所有的环境变量传递给子作业。
【问题讨论】:
标签:
jenkins
environment-variables
jenkins-pipeline
gerrit-trigger
【解决方案1】:
我参加了两个管道作业:管道 1(父作业)和管道 B(子作业)
Pipeline1:我正在从存在 Jenkinsfile 的 github 进行 SCM 签出,在 Jenkinsfile 中,我调用了 pipelineB(子作业),我在其中传递了父作业环境变量 (GIT_BRANCH)。 p>
管道 1 配置
Pipeline1的Jenkinsfile
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:我使用了选项 This build is parameterized 来捕获父作业(即 Pipeline1)传递的环境值的值。然后,在管道脚本中使用该变量。
管道B配置
请尝试一下。