首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果一个阶段或步骤也失败,则执行所有阶段和步骤

如果一个阶段或步骤也失败,则执行所有阶段和步骤
EN

Stack Overflow用户
提问于 2019-02-05 15:55:56
回答 2查看 117关注 0票数 1

我正在设置下面提到的Jenkins管道。如果第一个阶段失败了,我的构建就会中止,但我想要执行第一个阶段和阶段中提到的步骤。

代码语言:javascript
复制
pipeline {
agent none

stages {
    stage("build and test the project") {
        agent {
            docker "coolhub/vault:jenkins"
        }
        stages {
           stage("build") {
               steps {
                   sh 'echo "build.sh"'
               }
           }
           stage("test") {
               steps {
                   sh 'echo "test.sh" '
               }
           }
        }
    }
  }
}

我想执行第一个阶段和步骤,这是在阶段中提到的。毕竟,阶段得到执行,然后最终需要中止Jenkins作业,并显示失败的阶段和步骤。

EN

回答 2

Stack Overflow用户

发布于 2019-02-05 18:18:49

是的,除了脚本中的try catch块之外,目前还没有其他方法可以做到这一点。更多信息请点击这里:Ignore failure in pipeline build step

代码语言:javascript
复制
stage('someStage') {
    steps {
        script {
            try {
                build job: 'system-check-flow'
            } catch (err) {
                echo err
            }
        }
        echo currentBuild.result
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-07-11 18:01:04

在hakamairi的回答中,阶段没有标记为失败。现在可以失败一个阶段,继续执行管道并选择构建的结果:

代码语言:javascript
复制
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'
            }
        }
    }
}

在上面的示例中,所有阶段都将执行,管道将成功,但阶段2将显示为失败:

正如您可能已经猜到的那样,您可以自由选择buildResultstageResult,以防您希望它不稳定或其他任何情况。您甚至可以使构建失败并继续执行管道。

只需确保您的Jenkins是最新的,因为这是一个相当新的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54529874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档