我正在使用Jenkins emailext插件并尝试接收控制台输出,但仅收到不带实际错误的截断日志。
我强迫一个断言故意失败,以测试我是否在电子邮件中收到了失败日志($ BUILD_LOG)。我确实获得了日志的大部分,但没有得到实际的最终错误或最后几个步骤。有没有办法捕获错误?它正在发送日志的截短版本,其中不包含最后几个步骤,因为我怀疑在发送邮件时,它会发送到目前为止已收集的内容(直到mailext步骤),而最后的步骤未写入其中日志,因为我们处于emailext步骤。但是,不幸的是,实际错误写在日志的末尾,所以我从没在电子邮件中看到它。我不太在乎是否丢失了最后的步骤,我不在乎最终不会看到错误消息,这是发送日志的全部要点。当我不使用VPN并能够访问Jenkins时,我希望能够看到电子邮件中的错误。 是否有包含ERROR的环境变量或在到达文件末尾之前清除错误的方法?
post {
failure {
emailext (to: xyz@acmeinc.com", subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", body: """Something went wrong with ${env.BUILD_URL}\n\n\${BUILD_LOG, maxLines=500, escapeHtml=false}""")
}
}
由userxxx开始
...
[管道]
emailext
发送电子邮件至:abc@acmeinc.com
[管道]}
[管道] //舞台
[管道]}
[管道] //节点
[管道]管道末端
groovy.lang.MissingPropertyException:无此类属性:类别groovy.lang.Binding ...的IE_BUILDx ...
我关心的是在管道步骤结束时显示的错误(例如,无此类属性错误)-有没有办法在我发送邮件之前强制刷新到日志以其他方式捕获它?
由于这是一个声明性管道,因此我无法在整个代码块中进行try / catch。我可以在管道中的每个脚本部分周围放置try / catch来捕获错误,将错误消息保存在我的电子邮件的变量中,然后重新抛出该错误,但这非常繁琐并且使代码混乱