Groovyの式をここで指定すると、式の結果がtrueになる組み合わせのみビルドされます。 式の評価では、軸は変数として扱われます(評価中の組み合わせに値をセットします)。
例えば、異なるOS上で複数のコンパイラを使用してビルドすることを考えてみましょう。 スレーブのラベルは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とすると、2つに1つの組み合わせを除去することで、ビルドする組み合わせのサイズを半分に することができます。同様に、index%3!=0とすると、3つに1つの組み合わせが除去されサイズは66%になります。 indexの値は、剰余計算においてビルドが特定の値に偏らないように計算されます。