Jenkins上游作业传递选择参数至下游作业时遇语法问题求助
Jenkins上下游作业参数传递错误修复
错误原因
你碰到的ClassCastException是因为build步骤的parameters参数必须传**hudson.model.ParameterValue类型的列表**,而你直接传了字符串,类型不兼容。
正确写法
把参数传递部分改成参数对象列表,两种常用方式:
方式一:字符串参数传递
如果下游作业的WHICH_ACTION是字符串/选择类型参数,用string对象传递最稳妥:
echo "You chose: ${params.ACTION}" build job: "stage/${app}", parameters: [ string(name: 'WHICH_ACTION', value: params.ACTION) ]
方式二:选择参数传递(适配下游选择参数)
如果下游的WHICH_ACTION明确是选择参数,也可以用choice对象传递:
echo "You chose: ${params.ACTION}" build job: "stage/${app}", parameters: [ choice(name: 'WHICH_ACTION', choices: params.ACTION, description: '') ]
关键细节提醒
你下游作业里判断阶段的条件是params.ACTION == 'STOP',但上游选择参数的选项是["Stop", "Deploy"],大小写不匹配会导致Stop阶段永远不执行。必须统一:
- 要么把上游选项改成
["STOP", "DEPLOY"] - 要么把下游判断改成
params.ACTION == 'Stop'
内容的提问来源于stack exchange,提问作者ketter palumets
相关产品推荐
相关产品推荐

