在jenkins管道中,您可以定义在特定条件下运行的后期步骤。我正在向mattermost通道发送构建状态的通知,我无法弄清楚当构建在失败后恢复稳定时如何报告。 “更改”选项也会在构建开始失败时运行,但我想使用“失败”部分来区分发送到mattermost的消息类型。
任何人都知道如何使这项工作?
答案 0 :(得分:1)
所以,当我发布后,我找到了一个有效的解决方案,但我仍然对其他选项感兴趣
changed {
script {
if (env.CHANGE_ID == null && currentBuild.result == null) {
mattermostSend....
}
}
}
答案 1 :(得分:0)
您可以通过将https://support.cloudbees.com/hc/en-us/articles/226419147-How-can-I-check-previous-build-status-in-a-Pipeline-Script-与当前构建状态进行比较来实现此目的。
if(currentBuild.rawBuild.getPreviousBuild()?.getResult().toString() != "SUCCESS" && ( currentBuild.result == "SUCCESS" || currentBuild.result == null ) ) {
echo "last build failed"
}
需要注意的一些事项:currentBuild.result默认为null(计为成功),所以如果它为null或“SUCCESS”,那么你就是好的。此外,您需要在jenkinsurl.com/scriptApproval/中找到的groovy脚本批准页面中将这些对象列入白名单(在您尝试运行脚本后它们将出现在那里)