Jenkins 將其他 job 名稱變成可選擇的參數

專案愈來愈多,加上最近正在更新專案的 Jenkins,正好趁著這次機會將各個專案的 CI 流程統一,以往新增專案就會手動為專案加上一個 Build job,一個一個加其實沒什麼感覺,但需要一次做調整時就快起肖了。所以想要使用模組化的 build flow,今天就先來介紹如何將 job name 當做 build job 的參數

安裝 plugin

  1. Manage Jenkins –> Manage Plugins

    1plugin

  2. Available tab –> Search “Extended Choice Parameter” –> 勾選 “Extended Choice Parameter plugin” –> install

    2install

設定 plugin

  1. This porject is paramerterized

    3paramertized

  2. Add Extended Choice Parameter –> Basic Parameter Types

    4extented

  3. Parameter Type

    5paramtype

    • 填寫顯示的數量
  4. Choose Source for Value

    • Groovy Script

      def jobs = jenkins.model.Jenkins.instance.getJobNames()
      def matchjobs = jobs.findAll{ name -> name =~ /(A|B|C)\d{2}.*/ }
      return matchjobs
      
    • 使用 Groovy Script 來過濾 jobname

    • 這邊使用 regular expression 來過濾

      6sourcevalue

啟用 script 執行

  1. Build with Parameters

    7buildwith

  2. Appove Groovy script

    8approve

實際效果

9result

心得

經過上面的設定,就可以將現有的 job 拿來當做 build 參數,適合接在 pipeline job 後面,做後續的動作,這也是 build job 模組化的第一步

參考資訊

  1. Extended Choice Parameter plugin