Jenkins構建多配置項目


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

可以解決的問題:

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

思路

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

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 參數是可變的,那我們可以利用兩個變量將以上參數簡化為一條:

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

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

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

步驟

1、需要新建一個任務,類型為:構建一個多配置項目(Build multi-configuration project)
這里寫圖片描述

2、其他設置與一般任務相同,只是多了一個模塊 Configuration Matrix

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
    這個是指定所有版本要按順序編譯,建議勾選

3、構建參數
以上我們已經得到所需變量,那就可以在構建中寫入完整的參數配置,這里選擇的是Windows 批處理命令(注意:使用變量的方式因命令而異,比如windows下的變量使用%,所以這里用的是 %purp%%ver%

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

4、保存后,查看項目,有一個參數矩陣,通過圓球可以對每個版本的構建結果一目了然(注意這里的0和1是我們剛剛定義的變量值,不是序號)
這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM