Issue in catchError functionality, Post feature is not working as expected

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      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.

            Assignee:
            Liam Newman
            Reporter:
            shubham srivastava
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: