詹金斯:捕捉错误跳到下一阶段,但仍然显示错误阶段失败

时间:2021-03-19 08:47:01

标签: jenkins-pipeline

我目前正在使用 Jenkins here 来捕捉某个阶段是否发生错误,如果是,则跳到下一阶段。

我想要呈现的是,如果一个阶段发现了错误,在 Jenkins 中呈现为 红色失败),即使这个阶段被跳过下一个。

这是 Jenkins 管道阶段的编码方式,以在脚本失败时捕获错误:

    stage('test_run') {
        steps {
            catchError {
                sh """#!/bin/bash -l
                    ***

                    npm run test:run:reporter
                """
            }
        }
    }

我在 StackOverflow 中找到了这个解决方案: catchError

此解决方案有效,但在 Jenkins 的运行中,失败的阶段是呈现绿色(又名成功)。

这次 Jenkins 运行表明它失败了:

Jenkins: Ignore failure in pipeline build step

以下阶段实际上是失败的原因,并在捕获到错误时被跳过,但是,此阶段显示绿色(成功)并倾向于将其呈现为红色(失败)::: >

Failed Jenkins Run

最后的post动作显示为黄色不稳定),而正常情况下它显示为绿色成功):

Failed stage skipped showing Green Success

感谢您的阅读,感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

你可以使用

catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
  Add your commands
}

添加您要为构建和暂存结果设置的任何结果。

答案 1 :(得分:0)

@DashrathMundkar 谢谢

catchError()buildResultstageResult 一起使用,但是我将值都设置为“FAILURE”,结果就成功了。

catchError(buildResult: 'FAILURE', stageResult: 'FAILURE', message: 'Test Suite had a failure') { }
相关问题