Jenkins Pipeline:如何将定义的列表用作作业参数
Jenkins Pipeline 复用预定义参数列表的方法
你的原代码问题在于:Declarative Pipeline的parameters块不支持直接引用外部定义的变量,需要通过以下两种方式实现复用预定义参数列表:
方法一:在Pipeline外部通过properties步骤定义参数
直接在pipeline代码块外使用properties步骤,将预定义的参数列表传入,作业加载时就能识别这些参数:
def myParams = [ string(name: 'PARAM19', defaultValue: 'value19'), string(name: 'PARAM20', defaultValue: 'value20') ] // 注册预定义参数列表 properties([parameters(myParams)]) pipeline { agent any stages { stage('Example') { steps { echo "PARAM19: ${params.PARAM19}" echo "PARAM20: ${params.PARAM20}" echo "ok" } } } }
方法二:在Pipeline内部动态设置参数(适合动态生成场景)
如果需要在流水线执行过程中动态生成参数,可以在steps里嵌入script块,调用properties步骤完成参数注册:
pipeline { agent any stages { stage('Initialize Parameters') { steps { script { def myParams = [ string(name: 'PARAM19', defaultValue: 'value19'), string(name: 'PARAM20', defaultValue: 'value20') ] properties([parameters(myParams)]) } } } stage('Example') { steps { echo "PARAM19: ${params.PARAM19}" echo "PARAM20: ${params.PARAM20}" echo "ok" } } } }
注意事项
- 第一次运行作业时,参数不会立即显示在作业的参数输入界面,触发一次执行后,后续运行才会加载参数选项。
- 流水线中可通过
params.参数名的方式调用这些参数。
内容的提问来源于stack exchange,提问作者Paweł
相关产品推荐
相关产品推荐

