Skip to main content
 首页 » 编程设计

jenkins之如何将管道中的 bool 参数值传递给下游作业

2024年04月18日99lvdongjie

我使用 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)) 
    ]