Tenho um projeto de configuração de matriz no Jenkins que gostaria de construir em dois eixos:
rótulo -> rhel6
,rhel7
definido pelo usuário -> default
, devtoolset
, clang
,icc
Alguns nós são marcados como rhel6
e outros são marcados como rhel7
. Todos os nós possuem os compiladores default
, devtoolset
e clang
instalados. No entanto, apenas alguns nós possuem o icc
compilador instalado. Eles têm o icc
rótulo aplicado a eles. Todos esses nós também possuem o rhel7
rótulo: não há rhel6
nós com icc
. O que devo colocar no Filtro de Combinação para que a icc
linha seja construída apenas nos nós com o icc
rótulo? Por exemplo, o que eu quero ver é:
Configuration Matrix rhel6 rhel7
default O O
devtoolset O O
clang O O
icc X O
mas a icc
linha não pode ser construída em qualquer rhel7
nó, apenas no subconjunto de rhel7
nós com o icc
rótulo.
Consegui torná-lo tecnicamente funcional adicionando uma coluna de rótulo adicional e a seguinte expressão:
(label=="icc").implies(compiler=="icc") && (compiler=="icc").implies(label=="icc")
mas isso gera o seguinte:
Configuration Matrix icc rhel6 rhel7
default X O O
devtoolset X O O
clang X O O
icc O X X
o que definitivamente não é tão limpo quanto deveria ser. Alguma ideia?