【发布时间】:2019-03-15 15:13:47
【问题描述】:
我们的 Jenkins 设置由主节点和不同/专用的工作节点组成,用于在开发、测试和生产环境中运行作业。如何创建一个脚本化的管道代码,允许用户选择环境(可能从主节点)并根据所选的环境执行所选节点中的其余作业?这是我最初的想法:
stage('Select environment ') {
script {
def userInput = input(id: 'userInput', message: 'Merge to?',
parameters: [[$class: 'ChoiceParameterDefinition', defaultValue: 'strDef',
description:'describing choices', name:'Env', choices: "dev\ntest\nprod"]
])
println(userInput);
}
echo "Environment here ${params.Env}" // prints null here
stage("Build") {
node(${params.Env}) { // schedule job based upon the environment selected earlier
echo "My test here"
}
}
}
我走在正确的道路上还是应该看看别的?
另一个后续问题是,在工作节点上运行的作业还需要额外的用户输入。有没有一种方法可以一次性组合用户输入,从而不会提示用户使用多个用户屏幕?
【问题讨论】:
-
node(${params.Env})应该是node(params.Env)