使用Active Choice Parameter参数化构建

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

[[353787]]

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


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


主动选择参数

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

 按住Ctrl 就可以多选了。 


主动选择反应参数

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


Jenkinsfile

  1. properties([ 
  2.     parameters([ 
  3.         [$class: 'ChoiceParameter',  
  4.             choiceType: 'PT_SINGLE_SELECT',  
  5.             description: 'Select the Env Name from the Dropdown List',  
  6.             filterLength: 1,  
  7.             filterable: true,  
  8.             name'Env',  
  9.             randomName: 'choice-parameter-5631314439613978',  
  10.             script: [ 
  11.                 $class: 'GroovyScript',  
  12.                 fallbackScript: [ 
  13.                     classpath: [],  
  14.                     sandbox: false,  
  15.                     script:  
  16.                         'return[\'Could not get Env\']' 
  17.                 ],  
  18.                 script: [ 
  19.                     classpath: [],  
  20.                     sandbox: false,  
  21.                     script:  
  22.                         'return["Dev","QA","Stage","Prod"]' 
  23.                 ] 
  24.             ] 
  25.         ],  
  26.         [$class: 'CascadeChoiceParameter',  
  27.             choiceType: 'PT_SINGLE_SELECT',  
  28.             description: 'Select the Server from the Dropdown List',  
  29.             filterLength: 1,  
  30.             filterable: true,  
  31.             name'Server',  
  32.             randomName: 'choice-parameter-5631314456178619',  
  33.             referencedParameters: 'Env',  
  34.             script: [ 
  35.                 $class: 'GroovyScript',  
  36.                 fallbackScript: [ 
  37.                     classpath: [],  
  38.                     sandbox: false,  
  39.                     script:  
  40.                         'return[\'Could not get Environment from Env Param\']' 
  41.                 ],  
  42.                 script: [ 
  43.                     classpath: [],  
  44.                     sandbox: false,  
  45.                     script:  
  46.                         ''' if (Env.equals("Dev")){ 
  47.                                 return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"
  48.                             } 
  49.                             else if(Env.equals("QA")){ 
  50.                                 return["qaaaa001","qabbb002","qaccc003"
  51.                             } 
  52.                             else if(Env.equals("Stage")){ 
  53.                                 return["staaa001","stbbb002","stccc003"
  54.                             } 
  55.                             else if(Env.equals("Prod")){ 
  56.                                 return["praaa001","prbbb002","prccc003"
  57.                             } 
  58.                         ''
  59.                 ] 
  60.             ] 
  61.         ] 
  62.     ]) 
  63. ]) 
  64.  
  65. pipeline { 
  66.   environment { 
  67.          vari = "" 
  68.   } 
  69.   agent any 
  70.   stages { 
  71.       stage ("Example") { 
  72.         steps { 
  73.          script{ 
  74.           echo 'Hello' 
  75.           echo "${params.Env}" 
  76.           echo "${params.Server}" 
  77.           if (params.Server.equals("Could not get Environment from Env Param")) { 
  78.               echo "Must be the first build after Pipeline deployment.  Aborting the build" 
  79.               currentBuild.result = 'ABORTED' 
  80.               return 
  81.           } 
  82.           echo "Crossed param validation" 
  83.         } } 
  84.       } 
  85.   } 

 【编辑推荐】

 

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

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语言数据库软件

2010-11-01 05:54:41

2013-07-18 17:00:12

Gradle构建AndAndroid开发Android学习

2021-02-03 15:10:38

GoKubernetesLinux

2009-12-28 13:42:21

ADO Paramet

2011-08-24 11:30:39

Active Powe

2011-06-07 09:15:35

参数设置屏幕UI设计

2020-06-04 17:38:49

PythonFastAPIWeb服务

2009-12-24 16:16:08

ADODB

2024-05-17 09:00:45

SwiftUIvisionOS
点赞
收藏

51CTO技术栈公众号