关键词:Jenkins参数化构建选择选项后出现文本框,参数联动,参数化Active Choices插件
Jenkins中的参数化构建是一项功能强大的工具,允许用户在构建流程中自定义输入参数,从而极大地提升了构建的灵活性。为了进一步增强这种灵活性,有时我们可能希望参数之间能够相互联动,即一个参数的取值会影响另一个参数的取值范围。
实现参数联动的方法:
要实现Jenkins中的参数联动,我们需要借助一个名为“Active Choices”的插件。这款插件是Jenkins的一个扩展,能够丰富参数配置页面的选项类型,包括下拉框、单选框、复选框等。更重要的是,它允许我们通过Groovy脚本根据一个参数的取值动态生成另一个参数的选项。
Active Choices 插件用于参数化的自由式 Jenkins 作业,以创建脚本化、动态和交互式作业参数。Active Choices参数可以动态更新,并可以呈现为组合框、复选框、单选按钮或丰富的 HTML UI 小部件。
Active Choices 参数使用 Groovy 或(可选)Scriptler Groovy 脚本编写。这些自定义脚本支持使用 Jenkins Java API、系统环境变量、全局节点属性以及潜在的外部 Java 和 Javascript 库。
安装插件后,将有三种新的参数类型可用:
- 主动选择参数
- 主动选择反应参数
- 主动选择反应参考参数
步骤详解:
- 安装Active Choices插件:
- 首先,在Jenkins的管理界面中找到“插件管理”并搜索“Active Choices”。
- 安装并重启Jenkins以应用插件。
- 配置参数联动:
- 在构建任务的配置页面中,选择“参数化构建过程”。
- 点击“添加参数”,并从列表中选择“Active Choices Parameter”。
- 在“参数类型”中选择所需的类型,例如下拉框。
- 接下来,在“Groovy Script”区域编写脚本。该脚本将基于第一个参数的取值来动态生成第二个参数的选项。
示例场景:
假设我们有两个参数:DeployEnv和containerNamespace。其中,DeployEnv是一个下拉框(也就是我们选择部署到哪个环境),而containerNamespace也是一个下拉框,但其选项会根据DeployEnv的取值而变化。
- 对于DeployEnv参数,我们不需要编写特殊的Groovy脚本,只需设置其基础选项。
- 对于containerNamespace参数,我们将在其Groovy脚本中编写逻辑,根据DeployEnv的当前取值来生成相应的选项列表。
if(DeployEnv.equals("dev")){
return ["c2c-dev"]
}
if(DeployEnv.equals("test")){
return ["c2c-test"]
}
if(DeployEnv.equals("production")){
return ["prod-c2c"]
}
当我们选择了DeployEnv参数的下拉框后,第二个参数containerNamespace的值会根据代码判断自动做出变化,省去人为修改。