如何创建带Extended Choice Parameter的Jenkins Job,用Groovy实现动态参数段
Jenkins动态Extended Choice Parameter参数实现方案
前置要求
- 已安装Extended Choice Parameter Plugin插件
- 已配置Groovy脚本执行权限(可在Jenkins全局安全配置中按需开启Groovy沙箱相关权限)
实现逻辑说明
Extended Choice Parameter的Name字段仅作为参数的唯一引用标识,不需要在Groovy动态脚本中赋值,脚本仅需要返回参数的可选值列表,具体选中的值会直接透传到后续的Shell或Pipeline执行段。
配置示例
自由风格Job配置
在参数配置页新增Extended Choice Parameter,按如下规则填写:
- 名称:
SELECTED_DEPLOY_ENV(可自定义,后续作为变量名引用) - 参数类型:根据业务需要选择单选/多选/复选框等类型
- 选择「Groovy Script」作为值来源,填入动态生成选项的Groovy代码:
// 示例:动态生成部署环境选项,可替换为从配置中心/数据库/本地文件拉取的自定义逻辑 def deployEnvs = [] deployEnvs.addAll(["dev-1", "dev-2", "test-1", "test-2", "uat", "prod"]) return deployEnvs
Pipeline Job配置
直接在parameters段中声明即可,示例:
pipeline { agent any parameters { extendedChoice( name: 'SELECTED_DEPLOY_ENV', type: 'PT_SINGLE_SELECT', description: '选择要部署的环境', groovyScript: ''' def deployEnvs = ["dev-1", "dev-2", "test-1", "test-2", "uat", "prod"] return deployEnvs ''' ) } stages { stage('执行业务逻辑') { steps { // Pipeline中引用参数值 echo "当前选中的部署环境:${params.SELECTED_DEPLOY_ENV}" } } } }
参数值调用方式
- Pipeline中:通过
${params.参数名}引用 - 自由风格Job的Shell段:通过
$参数名引用 - 自由风格Job的Windows批处理段:通过
%参数名%引用
提示:如果配置的是多选类型的Extended Choice Parameter,返回的参数值为逗号拼接的字符串,可按业务需求自行分割使用。
内容的提问来源于stack exchange,提问作者venkata krishna reddy
相关产品推荐
相关产品推荐

