将选择参数传递给jenkins中的下游作业

问题描述 投票:0回答:1

我有一个上游作业,用户应该能够选择从下游作业执行哪个阶段,但我正在努力使用正确的语法来在构建作业阶段传递这些值。我还没有找到将选择参数传递给构建的解决方案。

我已经创建了选择

    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 
jenkins jenkins-pipeline pipeline jenkins-groovy
1个回答
0
投票

假设顶级作业中的相关参数名为

ACTION
,而下游作业中的参数名为
WHICH_ACTION
,您可能想尝试以下操作:

echo "You chose: ${params.ACTION}"
build job: '<downstream job name>', parameters: [
   string(name: "WHICH_ACTION", value: params.ACTION),
]
© www.soinside.com 2019 - 2024. All rights reserved.