DevOps运维技术栈

Jenkins参数化构建:实现参数关联与联动,构建选项后动态显示文本框

关键词: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 库。

安装插件后,将有三种新的参数类型可用:

  1. 主动选择参数
  2. 主动选择反应参数
  3. 主动选择反应参考参数

步骤详解

  1. 安装Active Choices插件
    • 首先,在Jenkins的管理界面中找到“插件管理”并搜索“Active Choices”。
    • 安装并重启Jenkins以应用插件。
  1. 配置参数联动
    • 在构建任务的配置页面中,选择“参数化构建过程”。
    • 点击“添加参数”,并从列表中选择“Active Choices Parameter”。
    • 在“参数类型”中选择所需的类型,例如下拉框。
    • 接下来,在“Groovy Script”区域编写脚本。该脚本将基于第一个参数的取值来动态生成第二个参数的选项。

示例场景

假设我们有两个参数:DeployEnv和containerNamespace。其中,DeployEnv是一个下拉框(也就是我们选择部署到哪个环境),而containerNamespace也是一个下拉框,但其选项会根据DeployEnv的取值而变化。

if(DeployEnv.equals("dev")){
        return ["c2c-dev"]
 }
if(DeployEnv.equals("test")){
        return ["c2c-test"]
}
if(DeployEnv.equals("production")){
        return ["prod-c2c"]
}

当我们选择了DeployEnv参数的下拉框后,第二个参数containerNamespace的值会根据代码判断自动做出变化,省去人为修改。

退出移动版