I have a matrix configuration project in Jenkins which I would like to build under two axes:
label -> rhel6
, rhel7
user-defined -> default
, devtoolset
, clang
, icc
Some nodes are tagged as rhel6
and some are tagged as rhel7
. All nodes have the default
, devtoolset
and clang
compilers installed. However, only some nodes have the icc
compiler installed. They have the icc
label applied to them. All of said nodes also have the rhel7
label: there are no rhel6
nodes with icc
. What should I put in the Combination Filter so that the icc
row is only built on nodes with the icc
label? E.g., what I want to see is:
Configuration Matrix rhel6 rhel7
default O O
devtoolset O O
clang O O
icc X O
but the icc
row cannot be built on just any rhel7
node, only on the subset of rhel7
nodes with the icc
label.
I was able to get it technically functional by adding an additional label column and the following expression:
(label=="icc").implies(compiler=="icc") && (compiler=="icc").implies(label=="icc")
but that generates the following:
Configuration Matrix icc rhel6 rhel7
default X O O
devtoolset X O O
clang X O O
icc O X X
which is definitely not as clean as it should be. Any ideas?