Jenkins Groovy调用其他任务时如何向Active Choice Parameter传列表值
问题原因
你遇到的报错是因为Pipeline build 步骤的参数列表中不存在choice这一参数符号,原生支持的参数类型仅包含string、booleanParam、text等,无法直接通过choice关键字传递列表选项。
解决方案
方案1:使用StringArrayParameterValue直接传递列表(推荐)
适合目标Active Choice Parameter开启了多选模式的场景,直接实例化Jenkins核心类传递数组类型参数,无需对列表内容做格式转换:
import hudson.model.StringArrayParameterValue build job: "myjob", parameters: [ new StringArrayParameterValue('paramName', ['a', 'b', 'c'] as String[]) ]
注意:如果你的Jenkins开启了脚本安全限制,需要在「管理Jenkins -> 进程内脚本审批」中批准该类的使用权限。
方案2:列表转逗号分隔字符串传递
无需导入额外类,直接用原生支持的string参数类型传递,多选模式的Active Choice会自动将逗号分隔的字符串拆分为列表:
def choiceList = ['a', 'b', 'c'] build job: "myjob", parameters: [ string(name: 'paramName', value: choiceList.join(',')) ]
注意:如果参数值本身包含逗号,会出现拆分错误,该场景下优先使用方案1。
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

