How to continue past a failing stage in Jenkins declarative pipeline syntax

后端 未结 4 481
深忆病人
深忆病人 2021-02-01 06:14

I want to define multiple stages in Jenkins declarative pipeline syntax which can continue past any one of them failing. I cannot find any existing questions which are true dupl

4条回答
  •  面向向阳花
    2021-02-01 06:41

    This is now possible:

    pipeline {
        agent any
        stages {
            stage('1') {
                steps {
                    sh 'exit 0'
                }
            }
            stage('2') {
                steps {
                    catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
                        sh "exit 1"
                    }
                }
            }
            stage('3') {
                steps {
                    sh 'exit 0'
                }
            }
        }
    }
    

    In the example above, all stages will execute, the pipeline will be successful, but stage 2 will show as failed:

    As you might have guessed, you can freely choose the buildResult and stageResult, in case you want it to be unstable or anything else. You can even fail the build and continue the execution of the pipeline.

    Just make sure your Jenkins is up to date, since this is a fairly new feature.

    EDIT: This is the question that this answer was originally written for. It is also the correct answer for a few other questions, which is why I posted this answer there as well. This is the right solution for multiple similar problems. I've tailored my other answers to their specific questions to make that clear. I only copied the answer to save myself some time. That doesn't mean it's not a good correct answer.

提交回复
热议问题