这次有关于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!"
}
一如既往地感谢您的帮助。
答案 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!'
}
}
}