从Jenkins管道获取失败原因

Mik*_*keB 7 jenkins jenkins-pipeline

我正在为Jenkins建立一个声明性管道.在我的post部分中,我slackSend用来通知我的团队构建已损坏.我想包括失败原因.这是可用的env还是currentBuild其他的?我没有在文档中看到任何内容,但似乎是一个常见的用例

我已经看过一些关于使用的帖子,currentBuild.rawBuild.getLog(10)并且有效,但它只是填充了太多的信息.我需要对实际异常进行归零

Von*_*onC 3

另一种方法是使用一个catchError或至少一个try/catch.
然后,如这个答案中所示,您可以收到错误消息:String error = "${e}";

关于 catchError,您可以将可能失败的每个步骤包装到一个catchError函数中。如果发生错误,则会设置build.result为 FAILURE,并继续构建。

请参阅catchError,它指出只有该try/catch方法可能对捕获实际错误e(及其字符串)有用。
然后,您可以将该错误字符串添加到全局变量中,您的post步骤随后可以访问该全局变量。
这将比 . 更简洁和/或更精确currentBuild.rawBuild.getLog(10)