設定了 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
會每三種組合就挑一個掉,讓矩陣縮小三分之一。