我使用 Jenkins v2.1 和集成交付管道功能 ( https://jenkins.io/solutions/pipeline/ ) 来编排两个现有构建(构建和部署)。
在我的参数化构建中,我设置了 3 个用户参数,这些参数也需要在管道中进行选择。
管道脚本如下:
node: {
stage 'build'
build job: 'build', parameters: [[$class: 'StringParameterValue', name: 'target', value: target], [$class: 'ListSubversionTagsParameterValue', name: 'release', tag: release], [$class: 'BooleanParameterValue', name: 'update_composer', value: update_composer]]
stage 'deploy'
build job: 'deploy', parameters: [[$class: 'StringParameterValue', name: 'target', value: target]]
}
除了 BooleanParameterValue
之外,它都能正常工作。当我构建管道时,会引发以下错误:
java.lang.ClassCastException: hudson.model.BooleanParameterValue.value expects boolean but received class java.lang.String
如何解决此类型转换错误? 或者更好的是,是否有一种不太麻烦的方法,可以将所有管道参数传递给下游作业。
请您参考如下方法:
除了 Jesse Glick答案,如果你想传递字符串参数,那么使用:
build job: 'your-job-name',
parameters: [
string(name: 'passed_build_number_param', value: String.valueOf(BUILD_NUMBER)),
string(name: 'complex_param', value: 'prefix-' + String.valueOf(BUILD_NUMBER))
]