-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 2.226
When stages within a matrix are skipped using the 'when' directive, the pipeline result is not rendered correctly. The first cell of the matrix is correctly shown as 'Skipped', however subsequent cells are shown as 'Passed' (in 0s). This is very confusing.
#!groovy pipeline { agent none parameters { booleanParam( name: 'matrix', defaultValue: true ) booleanParam( name: 'parallel', defaultValue: true ) } stages { stage( 'matrix' ) { matrix { axes { axis { name 'server' values 'server-one', 'server-two' } } stages { stage( 'matrix' ) { agent { label "${server}" } when { expression { params.matrix } } steps { echo "matrix ${server}" } } } } } stage( 'parallel' ) { parallel { stage( 'parallel-one' ) { agent { label 'server-one' } when { expression { params.parallel } } steps { echo 'parallel-one' } } stage( 'parallel-two' ) { agent { label 'server-two' } when { expression { params.parallel } } steps { echo 'parallel-two' } } } } } // stages } // pipeline
I just discovered that if I use the beforeAgent option on the when directive:
That the visual result is a lot better:
There is still some confusion as to what is what, since the first matrix cell reports that it has been skipped, whereas the second cell reports that it was not built.