我在Declarative Pipeline上看到它是通过" post"部分非常简单,例如'总是','失败',...:
https://jenkins.io/doc/book/pipeline/syntax/#post
但是使用Scripted Pipeline并没有关于它是如何完成的例子:
此链接提供了一个示例,但仅适用于"始终"条件
https://jenkins.io/doc/book/pipeline/jenkinsfile/#handling-failures
我看到有关如何设置该结果的文档,但我不明白,因为使用Declarative Pipeline您不必手动设置它,插件提供的命令会为您处理。
任何人都可以帮我吗?
例如,如果我这样做:
节点{ 尝试{ 错误'测试错误' } catch(ex){ echo'错误处理' } }
它不会触发" FAILURE"自动构建状态,我没有看到回声。为什么呢?
答案 0 :(得分:4)
您的代码片段按预期工作:
node { try { error 'Test error' } catch (ex) { echo 'Error handled' } }
给出:
[Pipeline] node
Running on maître in /var/lib/jenkins/workspace/test-pipeline2
[Pipeline] {
[Pipeline] error
[Pipeline] echo
Error handled
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
解释:
如果要将构建标记为失败,则必须在catch块中显式执行此操作。您还可以使用 catchError 块来为您处理此问题。请参阅:https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-catcherror-code-catch-error-and-set-build-result