jenkins active choice parameter插件

actice choice 這個插件的作用是可以在參數化構建時,創建一個可選的參數

例如,用jenkins創建一個發佈project時,我們發佈過程中需要選擇環境、服務名稱等,我們希望在參數化構建時,可以提供一個下拉框給用戶進行選擇,這時候可以使用這個插件來創建這樣的可選參數


下面是效果圖

image.png


如何使用actice choice 插件

1、安裝active choices插件

image.png


2、創建一個project,勾選參數化構建

image.png


勾選Groovy script

將選項寫成上圖這個樣子即可。這裏選項是固定的,我們可以這樣寫死,如果選項是動態的呢?比如產品這個選項,現在有十個產品,後面可能會增加到30個。我們寫死的化很需要一直維護。這種情況怎麼辦?能否動態的獲取所有產品名稱呢?答案是肯定的


比如:我們公司產品我是通過python腳本調用cmdb的api接口獲取到的,然後將獲取的所有產品寫入到文件中。一行一個產品,如下圖這樣子

image.png


Groovy script從文件中獲取變量值

image.png


參數類型

參數類型可以設置爲單選和多選,還有radio buttons這種單選框,check box是複選框,可以根據自己的需求來使用

image.png



擴展

An Active Choices Reactive Parameter

active choice插件還有一個好用的功能,就是當有多個參數時,第二個參數的值,會根據第一個參數選擇的值進行變換。舉一個很常見的場景:

在發佈時,當選擇生產環境時,第二個參數的選項裏面應該出現生產環境的服務器,當選擇測試環境時,第二個選項裏面應該出現測試環境的服務器。


我這裏有一個需求,當選擇一個模塊時,會根據模塊名稱,查通過CMDB接口查詢哪些產品有該模塊。

先看下效果圖,由於我本機測試環境沒有辦法連CMDB,所以只測試當選擇一個module時,我的aaa參數這裏,也出現該module。效果圖如下:

image.png


aaa參數配置

image.png


image.png


module=module
def list = "/opt/aaa.py $module".execute().text.readLines()
list.each{language->
  println language
}


/opt/aaa.py腳本內容

[root@localhost opt]# cat aaa.py 
#!/usr/bin/python
import sys
print  sys.argv[1]

該腳本很簡單,就是傳遞一個參數,然後print這個參數。在aaa這個變量裏面,這個參數是關聯的module,所以打印的就是用戶選擇的module的名稱。











參考鏈接:

https://www.jianshu.com/p/3f54cf1674ce


官方文檔:

https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin


要查詢某個插件的用法,可以在這裏根據插件名稱搜索

https://plugins.jenkins.io/








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章