Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-60354

Updated pipeline build step does not work with retry, catchError, or warnError

XMLWordPrintable

    • workflow-basic-steps 2.19, pipeline-build-step 2.11, workflow-step-api 2.22

      We just upgraded pipeline-build-step from 2.9 to 2.10. The following no longer retries:

      pipeline {
          agent any
      
          stages {
              stage('bug') {
                  steps {
                      retry(3) {
                          echo 'in the retry loop'
                          //throw new Exception('failing in retry loop') // This runs (when uncommented) several times before the pipeline exits with failure.
                          build(job: 'some/job/that/fails', propagate: true) // This only runs once before the pipeline exits with failure.
                      }
                  }
              }
          }
      }
      

      When the sub-build fails, the retry loop exits immediately and does not retry. This didn't used to happen. When raising an error in another way (e.g. the `throw new Exception`, commented out, in the code above), `retry` works as expected.

      A workaround is to try/catch the `build()` call and, in catch, `throw new Exception(...)`. If the caught exception is directly re-thrown, we see the same behavior where `retry` does not loop.

            dnusbaum Devin Nusbaum
            jonathanb1 Jonathan B
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: