如何解决Jenkins脚本化管道中的等效选择
我最近将声明性管道重构为脚本形式。即使一切似乎都正常,但多值paramenter的初始化还是有问题。
在声明性管道中,我使用了以下多值参数的定义(该参数应能正常工作):
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'],name: "VERSIONING"),]),])
问题是,当我意识到某事无法正常工作,并用sh """echo "Versioning parameter check:" ${params.VERSIONING}"""
步骤打印出变量值时,我从詹金斯的控制台上得到了这个信息:
版本参数检查:false
这是一个不在列表中的值,并且具有不同的类型(布尔值而不是字符串)。
是否可以在Jenkins脚本化管道中实现多值参数初始化? 为什么此指令在脚本化管道中不能立即使用,而在声明性类型中却不能使用? 这是错误还是我做错了什么?
解决方法
尝试使用其他选项来定义选择参数:
properties([
parameters([
[$class: 'ChoiceParameterDefinition',choices: 'fix\nmajor\nminor\nnone\n',name: 'VERSIONING',description: "Increase version's number: MAJOR.MINOR.FIX"
],]),])
,
您的定义绝对正确。您只需要将选择作为列表项而不是\ n分隔值即可传递。
properties([
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',])
如果您希望默认值为空,则只需添加一个空的第一选择,如下所示:
choice(choices: '\nfix\nmajor\nminor\nnone'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。