code

2014年10月10日 星期五

在Jenkins上進行套件相依性測試(下) - Matrix Combinations Plugin

前一篇我們用了不同的JDK版本,測試相容的範圍。Matrix的能耐當然不止於測試JDK版本,這篇我們再加碼,加入Guava的所有主版本,來測試專案可正常執行的環境結果。


開始前先來介紹一下Guava。Guava是由Google工程師群所維護的Java工具包,內容五花八門,而且實用,某種層度上Java8的內容受到Guava的影響很深。Google Style的專案特色,文件多、實用高、效能佳、向下絕對不保證相容。用過Google開發相關工具的人們,應該對他們這風格體驗深刻。今天的情境,專案使用Guava開發,但不知道使用的指令可以活到那一個版本……Find it!

本篇相關外掛



目標情境

使用Matrix Project測試專案使用的Guava各版本與JDK的相容性
  • Git: https://github.com/abola/jenkins-matrix.git
  • Maven Goal: clean compile test (3.0 or 3.1限定) 

目標的結果

第一步:從Maven開始

要建立多重設定,我們的專案也必需要能夠接收變數,才能透過變數引入版本的資訊,引導Maven載入指定套件,我們先講設定,下一步會說明運作原理。
pom.xml,套件以變數方式指定 https://github.com/abola/jenkins-matrix/blob/master/pom.xml

第二步:建立新軸線

設定請參考前一篇的,接續該篇內容,除了已有的JDK外,再增加了一條軸線『guava.version』,要增加不同的版本,可以使用空白或是換行為區隔
所以看來總共會測試四種JDK x 10種Guava版本,一次有40組測試!
多重設定專案的原理,說破了就知道很簡單,只是將設定轉為變數,引入build tool的執行過程中。
由引數帶入的參數會蓋過原本 <properties> 中的設定 

第三步:跑吧,孩子

開始建置後,會拆解軸線上每種組合,成為獨立的作業
作業的結果會再回到專案的頁面上
結果產生出來了,看來這專案某個語法在Guava 16.0 以後有調整了API,而且是在 Guava 10 開始有的指令。而JDK5只能在Guava 11.0前的版本使用。

第四步:跑吧,孫子

既然,官方都有說明Guava 12版開始必需使用JDK6+,那我們沒有必要每次都測試肯定會錯的部份了。這篇最後再介紹一組外掛  Matrix Combinations Plugin,讓你可以自訂Matrix 中要執行的片段。使用的方法比較特別,回到專案的組態設定畫面。將參數化建置勾選起來吧!
在新增參數中可以找到『Matrix Combinations Parameter』的選項 
專案建置畫面會先詢問,取消勾選不必要的版本

Jenkins 的Matrix Project原理並不難,只是需要與Build Tool整合,例如在pom.xml中,將核心的lib以變數的方式宣告版本就是不錯的開始。

沒有留言:

張貼留言