-
Bug
-
Resolution: Unresolved
-
Major
-
Jenkins 2.190.3
i have three stages
pipeline { agent { node { label "myNode" } } stages { stage("Stage 1") { steps { catchError(buildResult: 'UNSTABLE', catchInterruptions: false, message: 'stage failed', stageResult: 'FAILURE') { bat 'exit 1' } } post { success { println "stage 1 Message from post: ........success........." } unstable { println "stage 1 Message from post: ........unstable........" } failure { println "Stage 1 Message from post: ........failure........." } } } stage("Stage 2") { steps { catchError(buildResult: 'UNSTABLE', catchInterruptions: false, message: 'stage failed', stageResult: 'FAILURE') { bat "exit 0" } } post { success { println "stage 2 Message from post: ........success........." } unstable { println "stage 2 Message from post: ........unstable........" } failure { println "stage 2 Message from post: ........failure........." } } } stage("Stage 3") { steps { catchError(buildResult: 'FAILURE', catchInterruptions: false, message: 'stage failed', stageResult: 'UNSTABLE') { bat "exit 1" } } post { success { println "stage 3 Message from post: ........success........." } unstable { println "stage 3 Message from post: ........unstable........" } failure { println "stage 3 Message from post: ........failure........." } } } } }
As per the documentation, my output should be
Stage 1 Message from post: ........failure......... stage 2 Message from post: ........success......... stage 3 Message from post: ........unstable.........
But actually the output is
Stage 1 Message from post: ........failure......... stage 2 Message from post: ........unstable........ stage 3 Message from post: ........failure........
After the analysis i found out that the post feature in stage block are working according to the buildResult rather than stage result.
Post feature is working fine only for the first stage which got failed in the pipeline not for the subsequent stage.
Above issue is related to this bugfix https://issues.jenkins-ci.org/browse/JENKINS-57826.
There is also an insufficient test case https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/pipeline-model-definition/src/test/resources/postStage/localAll.groovy
in the code.