Jenkins参数化任务如何实现依赖参数选中后自动禁用其他参数
Jenkins 参数依赖控制实现方案
你需要借助 Jenkins 的 Active Choices 插件(原Uno Choice插件)实现动态参数依赖,具体配置步骤如下:
前置准备
先在 Jenkins 插件管理中安装 Active Choices 插件,安装完成后重启 Jenkins 生效。
配置步骤
1. 配置最高优先级控制参数 deployment_options
将该参数配置为普通的Choice Parameter即可,选项包含所有你需要的部署选项,必须包含 Deploy to Develop,默认值按需设置。
2. 配置受控制的 build_target 参数
将该参数类型选择为 Active Choices Reactive Parameter,配置规则如下:
- 触发依赖项选择前面创建的
deployment_options参数 - 脚本类型选择 Groovy 脚本,填写如下逻辑:
if (deployment_options == 'Deploy to Develop') { // 部署选项符合要求时返回可选的构建目标 return ['Service', 'Package'] } else { // 不符合要求时返回固定的禁用提示 return ['<禁用:仅部署到开发环境时可配置该参数>'] }
- 取消勾选「Editable」选项,确保参数不符合条件时用户无法修改。
3. 配置二级受控参数 tests_set
将该参数类型选择为 Active Choices Reactive Parameter,配置规则如下:
- 触发依赖项同时选择
deployment_options和build_target两个参数 - 脚本类型选择 Groovy 脚本,填写如下逻辑:
// 优先判断最高优先级的部署选项 if (deployment_options != 'Deploy to Develop') { return ['<禁用:仅部署到开发环境时可配置该参数>'] } // 再判断构建目标类型 if (build_target == 'Package') { return ['<禁用:构建目标为Package时无需配置测试集>'] } // 所有条件满足时返回正常的测试集选项,可替换为你实际的测试集列表 return ['单元测试', '集成测试', '全量测试']
- 同样取消勾选「Editable」选项。
可选调整
如果你需要不符合条件的参数完全隐藏而不是显示禁用提示,可以将上述两个受控参数的类型替换为 Active Choices Reactive Reference Parameter,不符合条件时返回空值即可实现隐藏效果。
内容的提问来源于stack exchange,提问作者Barry White
相关产品推荐
相关产品推荐

