Jenkins構建多配置項目

本文參考自Jenkins相關資料,結合本人實際使用狀況編寫。
相關文檔:python

能夠解決的問題:

有時,咱們但願項目可以根據不一樣參數、或不一樣環境來編譯,若使用多個項目來實現,則有些浪費資源,那麼最好是能夠實現:在一個項目中,就能根據給出的不一樣參數來編譯不一樣版本。
我這裏以自定義參數爲例。windows

思路

好比當前項目的參數有四種(非完整參數,簡單舉例而已)ide

python -Purpose test -version 1.0
python -Purpose release -version 1.0
python -Purpose test -version 1.1
python -Purpose release -version 1.1

能夠看到 Purpose 和 version 參數是可變的,那咱們能夠利用兩個變量將以上參數簡化爲一條:ui

python -Purpose %purp% -version 1.%ver%

其中的 purp 可取值爲 testrelease,ver 可取值爲 01.spa

有了目標,接下來就是在Jenkins中的應用實踐。3d

步驟

一、須要新建一個任務,類型爲:構建一個多配置項目(Build multi-configuration project)
這裏寫圖片描述code

二、其餘設置與通常任務相同,只是多了一個模塊 Configuration Matrix blog

a)在Add axis中,選擇User-defined Axis,本例須要兩個變量,因此須要再增長一個User-defined Axis
這裏寫圖片描述圖片

b)這裏定義變量和對應的值,Name中是變量名,Values中是變量可取的值,中間以空格或回車隔開(注意:當可取值比較複雜的時候,建議每一個值用英文雙引號隔離,值之間仍以空格、回車隔開),如圖,填入前面提過的變量和值,此時 purpver 就是能夠在構建參數中直接使用的變量了
這裏寫圖片描述資源

c)這個模塊的下方有兩個可選項須要注意:

  • Combination Filter
    這個是過濾器,目前咱們定義了兩個變量,也就是說最後會獲得 2*2=4 個版本,而有時咱們並不想拿到全部組合的版本,那麼這個過濾器就能夠起做用了,好比咱們不想編譯 python -Purpose test -version 1.1這個版本,過濾方法如圖。
    BTW,當有多個版本要過濾時,可使用括號和 || 分隔,如:
    (purp == "test" && ver != "1") || (purp == "test" && ver != "0")
    這裏寫圖片描述
  • Run each configuration sequentially
    這個是指定全部版本要按順序編譯,建議勾選

三、構建參數
以上咱們已經獲得所需變量,那就能夠在構建中寫入完整的參數配置,這裏選擇的是Windows 批處理命令(注意:使用變量的方式因命令而異,好比windows下的變量使用%,因此這裏用的是 %purp%%ver%

python -Purpose %purp% -version 1.%ver%
這裏寫圖片描述

四、保存後,查看項目,有一個參數矩陣,經過圓球能夠對每一個版本的構建結果一目瞭然(注意這裏的0和1是咱們剛剛定義的變量值,不是序號)
這裏寫圖片描述

相關文章
相關標籤/搜索