【问题标题】:How can I return parameters in Jenkins pipeline based upon the job name?如何根据作业名称在 Jenkins 管道中返回参数?
【发布时间】:2019-10-23 16:15:44
【问题描述】:
我有两个 Jenkins 管道 (a)deploy 和 (b)test_deploy。我想从 一个 Jenkinsfile 运行这两个管道,因为它们的功能是相同的。
-
deploy 管道在所有非测试环境中运行
-
test_deploy 管道将仅在 test 环境中运行
我只想将测试环境显示为test_deploy 管道中的参数。 我想在选择参数上添加类似 if/else 的条件,这些条件将根据作业名称在参数中返回环境名称。 如何根据作业名称来条件选择/参数?
【问题讨论】:
标签:
jenkins
jenkins-pipeline
【解决方案1】:
您可以在 Jenkinsfile 的顶部添加此内容:
if (JOB_NAME == 'deploy') {
properties([
parameters([
choice(name: 'deployEnv', choices: ['deployEnv1', 'deployEnv2'], description: '')
])
])
} else if (JOB_NAME == 'test_deploy') {
properties([
parameters([
choice(name: 'testEnv', choices: ['testEnv1', 'testEnv2'], description: '')
])
])
}
这适用于声明式和脚本化管道,并根据作业名称填充选择参数。