Jenkins错误处理:在构建完成后使用try / catch发布到日志并检查错误

时间:2018-04-04 20:58:46

标签: jenkins jenkins-pipeline

这次有关于Pipelines的另一个问题,关于使用try / catch进行错误处理。我正在做的是使用"尝试"在舞台之外,所以我可以轻松地告诉哪些阶段失败了,哪些阶段过去这一点非常出色。

我现在需要担心所有日志的日志记录和成功/失败。所以这就是我的困境:我想构建(尝试)然后错误检查(catch)然后输出SUCCESS,如果它已经构建并检查错误。如果错误检查(catch)捕获错误,则输出到log FAILURE。我确信解决方案是盯着我的脸,我想念它。这就是我所拥有的(简单版本),它不是很优雅:

env.STAGE_STATUS = ""
try {
    stage ('Build Setup') {
        echo "Did this work?"
    }
} catch (errors) {
    echo "This did not work!"
    env.STAGE_STATUS = "FAIL"
}
if ("%STAGE_STATUS%" != "FAIL") {
    echo "This did work!"
}

一如既往地感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在舞台内使用try / catch / finally看起来更优雅,至少更具可读性。如果您想要失败构建(这与您的示例中的失败阶段基本相同的原因,这也是作业本身失败)使用辅助var currentBuild.result,这是btw全局可访问的。这么说,我会选择这个代码:

stage('Build Setup') {
   try {
       echo 'Did this work?'
   } catch {
       echo 'This did not work!'
       currentBuild.result = 'FAILED'
   } finally {
       if (currentBuild.result != 'FAILED') {
           echo 'This did work!'
       }
   }
}