当在 jenkins 管道的 stage
中调用时,如何为下游作业传递 choice parameters
?
我尝试了以下解决方案,但均无效:
stage('build job') {
steps{
script{
build job: 'test',
parameters: [
choice(choices: "option1\noption2\noption3\n", description: '', name: 'choiceParam')
]
}
}
}
失败并出现 java.lang.UnsupportedOperationException:类 hudson.model.ParameterValue 的已知实现没有使用符号“选择”
也尝试了这些:
parameters:
[
[$class: 'ChoiceParameterValue', name: 'choiceParam', value: "1\n\2\n3\n"],
]
因 java.lang.UnsupportedOperationException 失败:没有已知的类 hudson.model.ParameterValue 的实现被命名为 ChoiceParameterValue
我实际上想将选择参数作为 构建参数
传递,例如 value
的“$choiceParam”,这样我就可以只更新 jenkins 作业配置,而不是总是更新管道脚本中的值
谁能帮我解决这个问题
谢谢
最佳答案
当您通过构建步骤构建作业时,您是在启动它,因此您需要“选择”一个值。
在这种情况下,您将传递所需的“字符串”选项。不是选择列表。即“1”
我们创建了我们的参数列表,然后将其传入。因此:我们当前的作业具有这些输入参数:
choice(name: 'ENV', choices: product, description: 'Env'),
choice(name: 'ENV_NO', choices: envParams(product), description: 'Env No'),
我们通过设置它们将它们传递到下游:
List<ParameterValue> newParams = [
new StringParameterValue('ENV', params.ENV),
new StringParameterValue('ENV_NO', params.ENV_NO),
]
build(job: "job", parameters: newParams, propagate: false)
关于jenkins - 如何传递选择参数以调用 Jenkins 管道内的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53732217/