使用Active Choice Parameter参数化构建

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

[[353787]]

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


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


主动选择参数

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

 按住Ctrl 就可以多选了。 


主动选择反应参数

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


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" 
        } } 
      } 
  } 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.

 【编辑推荐】

 

责任编辑:姜华 来源: 今日头条
相关推荐

2009-07-22 07:50:00

Scala传名参数

2010-10-27 16:14:24

Oracle参数查询命

2010-09-07 10:42:12

SQL语句

2012-09-04 10:20:31

IBMdw

2010-07-19 12:23:00

MSQL Server

2023-09-19 10:00:34

Linux虚拟

2017-03-16 10:02:50

2020-04-27 10:28:49

Jmeter参数化脚本

2009-05-20 10:58:15

数据库查询初始化

2022-11-22 10:52:00

云计算工具

2019-10-11 10:44:30

Go语言数据库软件

2013-07-18 17:00:12

Gradle构建AndAndroid开发Android学习

2021-02-03 15:10:38

GoKubernetesLinux

2010-11-01 05:54:41

2009-12-28 13:42:21

ADO Paramet

2011-08-24 11:30:39

Active Powe

2019-07-25 09:15:36

Python参数命令

2011-06-07 09:15:35

参数设置屏幕UI设计

2009-12-24 16:16:08

ADODB

2024-05-17 09:00:45

SwiftUIvisionOS
点赞
收藏

51CTO技术栈公众号