extend choice parameter使用_Jenkins使用Active Choice Parameter参数化流水线

b7319a0d649b1e96fb6e01b72e683836.png
199b630550d92ea1ca5e36c18a3fe9da.png

在使用Pipeline项目时 一般都是参数化构建工作,在Jenkins的构建需要使用参数类型有复选框,单选按钮,多选值等输入的情景。

项目地址:https://github.com/jenkinsci/active-choices-plugin

插件地址:https://plugins.jenkins.io/uno-choice/

转到→管理Jenkins→选择管理插件→选择可用选项卡,然后搜索主动选择插件。安装并重新启动Jenkins,以正确安装插件。我的已经安装好,因此在“已安装”标签中列出。

ed8300253dd54bf718126ab3fa88a866.png

主动选择参数

使用Groovy脚本或Scriptler目录中的脚本为生成参数动态生成值选项列表。参数可以动态更新,呈现为组合框,复选框,单选按钮或丰富的HTML UI窗口小部件。

a21af6f4c0d03798f00c09a847862741.png

按住Ctrl 就可以多选了。

eeb62c9c07996340a35700f90c180fbb.png

主动选择反应参数

当作业中UI控件的值发生更改时,可以动态更新(主动选择和响应参考参数) 这里可以使用IF进行条件判断,输出相关的值。

6c403433ee8df1e3391dfc5494b4a18b.png

在JenkinsFile中定义

properties([    parameters([        [$class: 'ChoiceParameter',             choiceType: 'PT_SINGLE_SELECT',             description: 'Select the Env Name from the Dropdown List',             filterLength: 1,             filterable: true,             name: 'Env',             randomName: 'choice-parameter-5631314439613978',             script: [                $class: 'GroovyScript',                 fallbackScript: [                    classpath: [],                     sandbox: false,                     script:                         'return['Could not get Env']'                ],                 script: [                    classpath: [],                     sandbox: false,                     script:                         'return["Dev","QA","Stage","Prod"]'                ]            ]        ],         [$class: 'CascadeChoiceParameter',             choiceType: 'PT_SINGLE_SELECT',             description: 'Select the Server from the Dropdown List',             filterLength: 1,             filterable: true,             name: 'Server',             randomName: 'choice-parameter-5631314456178619',             referencedParameters: 'Env',             script: [                $class: 'GroovyScript',                 fallbackScript: [                    classpath: [],                     sandbox: false,                     script:                         'return['Could not get Environment from Env Param']'                ],                 script: [                    classpath: [],                     sandbox: false,                     script:                         ''' if (Env.equals("Dev")){                                return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"]                            }                            else if(Env.equals("QA")){                                return["qaaaa001","qabbb002","qaccc003"]                            }                            else if(Env.equals("Stage")){                                return["staaa001","stbbb002","stccc003"]                            }                            else if(Env.equals("Prod")){                                return["praaa001","prbbb002","prccc003"]                            }                        '''                ]            ]        ]    ])])pipeline {  environment {         vari = ""  }  agent any  stages {      stage ("Example") {        steps {         script{          echo 'Hello'          echo "${params.Env}"          echo "${params.Server}"          if (params.Server.equals("Could not get Environment from Env Param")) {              echo "Must be the first build after Pipeline deployment.  Aborting the build"              currentBuild.result = 'ABORTED'              return          }          echo "Crossed param validation"        } }      }  }}
2d291783ae801dca53adcba11093d60d.png

8e57f4d01b42a6633edd928083c9239f.png
b067010262e9cde173002853e51d1977.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值