Jenkins流水线参数:根据环境选择自动填充目标环境选项
实现Jenkins流水线参数联动:根据环境自动过滤目标环境选项
要实现参数间的动态联动,Jenkins原生的choice参数无法满足需求,需要先安装Active Choices插件(这是Jenkins生态中实现动态参数的常用工具)。
以下是修改后的流水线代码,通过Active Choices的响应式参数实现联动逻辑:
pipeline { agent any parameters { // 基础环境选择参数 choice( name: 'Environment', choices: ['Test', 'Dev'], description: '选择基础环境' ) // 动态联动的目标环境参数 activeChoiceReactiveParam( name: 'Target_Environment', description: '根据所选基础环境自动匹配目标环境', script: [ $class: 'GroovyScript', script: """ if (Environment == 'Test') { return ['Test-US', 'Test-UK'] } else if (Environment == 'Dev') { return ['Dev-US', 'Dev-UK'] } else { return [] } """ ], choiceType: 'DROPDOWN', // 可改为RADIO使用单选按钮样式 filterable: false ) } stages { stage('build') { steps { script { echo "当前选择的基础环境: ${params.Environment}" echo "当前选择的目标环境: ${params.Target_Environment}" echo 'executing.' } } } } }
关键逻辑说明
- 第一个参数
Environment是普通下拉选择框,提供基础环境选项; - 第二个参数
Target_Environment是响应式参数,通过Groovy脚本监听Environment的取值:- 选中
Test时,自动生成Test-US、Test-UK两个选项; - 选中
Dev时,自动生成Dev-US、Dev-UK两个选项;
- 选中
choiceType可根据需求设置为DROPDOWN(下拉框)或RADIO(单选按钮)。
注意事项
- 确保Jenkins已安装Active Choices Plugin及Active Choices Reactive Reference Parameter Plugin(部分版本需两者配合使用);
- 若Jenkins全局安全配置限制脚本执行,需在「脚本安全」中允许该Groovy脚本的执行权限。
内容的提问来源于stack exchange,提问作者deepuKumar
相关产品推荐
相关产品推荐

