程序员

使用Active Choice Parameter参数化构建

作者:admin 2021-07-27 我要评论

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

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

在使用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.   } 

本文转载自网络,原文链接:https://www.toutiao.com/i6898444688013918728/

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 使用Active Choice Parameter参数化构

    使用Active Choice Parameter参数化构

  • 在鸿蒙系统上使用MQTT编程

    在鸿蒙系统上使用MQTT编程

  • 一篇带给你Linux磁盘管理和Shell编程

    一篇带给你Linux磁盘管理和Shell编程

  • 图文详解在Ubuntu 20.04中搭建Vue开发

    图文详解在Ubuntu 20.04中搭建Vue开发

腾讯云代理商
海外云服务器