Jenkins 預設會建置所有軸線可能的排列組合。不過有時候組合會過多,或是有些組合根本就不合理。 這種情況下,您可以使用 Groovy 表示式回傳值過濾掉不要的組合,讓矩陣稀疏點。

設定了 Groovy 表示式後,只有回傳結果是 true 的組合才會建置。 表示式執行時,軸線值會被當做變數傳入 (變數值設成當下要判斷的組合)。

依變數值篩選

假設您要在不同作業系統的不同編譯器上建置。 而您的 Slave 標籤有 label=[linux,solaris],並建了 compiler=[gcc,cc] 這個軸線。 下列的每一個表式示都會過濾掉在 linux 上的 cc 建置。 差別在您怎麼看待這個限制,您可能會覺得某些方式就是比較直觀。

讀作「同時是 Linux 跟 cc 時,就不要做」。
!(label=="linux" && compiler=="cc")
讀作「一定要在 Solaris 上或是用 gcc 才算是有效的組合」。
label=="solaris" || compiler=="gcc"
讀作「在 Solaris 上,只用 cc」。
(label=="solaris").implies(compiler=="cc")

矩陣稀疏化

除了設定變數值篩選規則外,您也可以使用 "index" 特別變數,將矩陣稀疏化。

例如 index%2==0 可以跳過一種組合後再挑一種,讓矩陣大小減半,這種涵蓋率也很合常理。 同樣的,index%3!=0 會每三種組合就挑一個掉,讓矩陣縮小三分之一。