Tengo un proyecto de configuración matricial en Jenkins que me gustaría construir bajo dos ejes:
etiqueta -> rhel6
,rhel7
definido por el usuario -> default
, devtoolset
, clang
,icc
Algunos nodos están etiquetados como rhel6
y otros como rhel7
. Todos los nodos tienen instalados los compiladores default
y devtoolset
. clang
Sin embargo, sólo algunos nodos tienen el icc
compilador instalado. Tienen la icc
etiqueta aplicada. Todos dichos nodos también tienen la rhel7
etiqueta: no hay rhel6
nodos con icc
. ¿Qué debo poner en el filtro combinado para que la icc
fila solo se construya en nodos con la icc
etiqueta? Por ejemplo, lo que quiero ver es:
Configuration Matrix rhel6 rhel7
default O O
devtoolset O O
clang O O
icc X O
pero la icc
fila no se puede construir en cualquier rhel7
nodo, sólo en el subconjunto de rhel7
nodos con la icc
etiqueta.
Pude hacerlo técnicamente funcional agregando una columna de etiqueta adicional y la siguiente expresión:
(label=="icc").implies(compiler=="icc") && (compiler=="icc").implies(label=="icc")
pero eso genera lo siguiente:
Configuration Matrix icc rhel6 rhel7
default X O O
devtoolset X O O
clang X O O
icc O X X
que definitivamente no está tan limpio como debería estar. ¿Algunas ideas?