【问题标题】:choice equivalent in Jenkins scripted pipelineJenkins 脚本化管道中的等价选择
【发布时间】:2020-10-01 07:30:52
【问题描述】:

我最近将我的声明式管道重构为脚本形式。即使一切看起来都很好,我在初始化多值参数时遇到了问题。

在我的声明式管道中,我使用了以下多值参数的定义(按应有的方式工作):

    parameters {

        choice(choices: ['fix', 'major', 'minor', 'none'], description: "Increase version's number: MAJOR.MINOR.FIX", name: "VERSIONING")

    }

我将它重构为脚本化管道的这种形式:

    properties([
        parameters([
            choice(choices: ['fix\nmajor\nminor\nnone'], description: "Increase version's number: MAJOR.MINOR.FIX", name: "VERSIONING"),
        ]),
    ])

问题是,当我意识到某些事情没有按应有的方式工作,并使用 sh """echo "Versioning parameter check:" ${params.VERSIONING}""" 步骤打印变量值时,我从 Jenkins 的控制台得到了这个:

版本参数检查:false

既不是列表中的值,又是不同类型的值(布尔值而不是字符串)。

有没有办法在 Jenkins 脚本化管道中实现多值参数初始化? 为什么该指令在脚本化管道中不能开箱即用,而在声明性类型中却可以? 这是一个错误还是我做错了什么

【问题讨论】:

    标签: variables jenkins groovy jenkins-pipeline jenkins-plugins


    【解决方案1】:

    尝试定义选择参数的其他选项:

        properties([
            parameters([
            [$class: 'ChoiceParameterDefinition',
               choices: 'fix\nmajor\nminor\nnone\n',
               name: 'VERSIONING',
               description: "Increase version's number: MAJOR.MINOR.FIX"
            ],
            ]),
        ])
    

    【讨论】:

      【解决方案2】:

      你的定义绝对没问题。您只需要将选项作为列表项而不是 \n 分隔值传递。

      properties([
          parameters([
              choice(choices: ['fix', 'major', 'minor', 'none'], description: "Increase version's number: MAJOR.MINOR.FIX", name: "VERSIONING"),
          ])
      ])
      

      【讨论】:

        【解决方案3】:

        我们使用以下作为选择参数,因此它看起来像您自己的定义,但没有括号:

        properties([
                parameters([
                    choice(choices: 'fix\nmajor\nminor\nnone', description: "Increase version's number: MAJOR.MINOR.FIX", name: "VERSIONING"),
                ]),
            ])
        

        如果您希望默认值为空,只需添加一个空的第一选项,如下所示:

        choice(choices: '\nfix\nmajor\nminor\nnone'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-14
          • 1970-01-01
          • 2017-07-04
          • 1970-01-01
          • 2021-12-17
          • 2019-08-24
          相关资源
          最近更新 更多