如何将整个 Jenkins 管道构建标记为成功,在一个阶段失败后其余阶段没有 运行?

How to mark whole Jenkins pipeline build as SUCCESS, after a stage fails and the remaining stages don't run?

我的第一个阶段 运行 是一个 shell 脚本。出口 0 将其标记为成功,出口 1 将其标记为失败。如何将此结果读入管道并获得所需的行为:

我在声明性管道中执行此操作,如何强制执行此行为?

您可以使用类似这样的方法,捕获错误然后更改 currentBuild 结果:

pipeline {
    agent any
    stages {
        stage('Stage 1') {
            steps {
                script {
                    try {
                        // do something that fails
                        sh "exit 1"
                    } catch (Exception err) {
                        currentBuild.result = 'SUCCESS'
                    }
                }
            }
        }
        stage('Stage 2') {
            steps {
                echo "Stage 2"
            }
        }
        stage('Stage 3') {
            steps {
                echo "Stage 3"
            }
        }
    }
}

如果您需要更改特定阶段的结果,请查看 this link 解释如何执行它。