我有一个上游作业,用户应该能够选择从下游作业执行哪个阶段,但我正在努力使用正确的语法来在构建作业阶段传递这些值。我还没有找到将选择参数传递给构建的解决方案。
我已经创建了选择
parameters {
choice(
name: 'ACTION',
choices: ["Stop", "Deploy"],
description: 'Choose whether to stop or deploy services'
)
}
然后根据这些值,下游作业将执行并发阶段
stage('Stop') {
when {
expression { params.ACTION == 'STOP' }
}
steps {`
现在我想在构建阶段传递这些值,但在这里我迷失了
echo "You chose: ${params.ACTION}"
build job: 'stage/{app}', parameters: "WHICH_ACTION=${params.ACTION}"),
我得到的错误是
java.lang.ClassCastException: class org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep.setParameters() expects java.util.List<hudson.model.ParameterValue> but received class java.lang.String
at
假设顶级作业中的相关参数名为
ACTION
,而下游作业中的参数名为WHICH_ACTION
,您可能想尝试以下操作:
echo "You chose: ${params.ACTION}"
build job: '<downstream job name>', parameters: [
string(name: "WHICH_ACTION", value: params.ACTION),
]