Jenkins 管道 运行 阶段失败

Jenkins Pipeline Run Stage On Failure

我的 Jenkins 管道脚本有很多 try/catch 块来在出现故障时通知我。如果前一个阶段失败,是否有可能只有 运行 的阶段?

我当前的脚本看起来像这样。

stage('Stage 1') {
    steps {
        try {
            // do something
        }
        catch(Exception e) {
            bitbucketStatusNotify(buildState: 'FAILED')
            error 'FAILED'
        }
    }
}
stage('Stage 2') {
    steps {
        try {
            // do something
        }
        catch(Exception e) {
            bitbucketStatusNotify(buildState: 'FAILED')
            error 'FAILED'
        }
    }
}
stage('Stage 3') {
    steps {
        try {
            // do something
        }
        catch(Exception e) {
            bitbucketStatusNotify(buildState: 'FAILED')
            error 'FAILED'
        }
    }
}

我想做这样的事情。

stage('Stage 1') {
    steps {
        // do something
    }
}
stage('Stage 2') {
    steps {
        // do something
    }
}
stage('Stage 3') {
    steps {
        // do something
    }
}
stage('Only Run On Failure') {
    steps {
        bitbucketStatusNotify(buildState: 'FAILED')
    }
}

要通知管道中任何阶段的故障,请使用 post actions。 对于每个管道结果,您可以设置一些 post 操作。

不成功示例(任何未以 'SUCCESS' 结果结束的构建):

stages{
    stage('Stage 1') {
        steps {
            // do something
        }
    }
    stage('Stage 2') {
        steps {
        // do something
        }
    }
    stage('Stage 3') {
        steps {
            // do something
        }  
    }
post{
    success{
        bitbucketStatusNotify(buildState: 'SUCCESS')
    } 
    unsuccessful{
        bitbucketStatusNotify(buildState: 'FAILED')
    }    
}