Jenkins 如何在声明性语法中定义仅在生成恢复正常时运行的post步骤
在jenkins管道中,可以定义在特定条件下运行的post步骤。我正在将构建状态的通知发送到最重要的通道,我不知道如何在构建失败后恢复稳定时进行报告。“changed”选项也会在构建开始失败时运行,但我想使用“failure”部分来区分发送给mattermost的消息类型Jenkins 如何在声明性语法中定义仅在生成恢复正常时运行的post步骤,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,在jenkins管道中,可以定义在特定条件下运行的post步骤。我正在将构建状态的通知发送到最重要的通道,我不知道如何在构建失败后恢复稳定时进行报告。“changed”选项也会在构建开始失败时运行,但我想使用“failure”部分来区分发送给mattermost的消息类型 有人知道如何做到这一点吗?所以,当然,在我发布文章之后,我找到了一个可行的解决方案,但我仍然对其他选择感兴趣 changed { script { if (env.CHANGE_ID == null &
有人知道如何做到这一点吗?所以,当然,在我发布文章之后,我找到了一个可行的解决方案,但我仍然对其他选择感兴趣
changed {
script {
if (env.CHANGE_ID == null && currentBuild.result == null) {
mattermostSend....
}
}
}
您可以通过组合并与当前生成状态进行比较来实现这一点
if(currentBuild.rawBuild.getPreviousBuild()?.getResult().toString() != "SUCCESS" && ( currentBuild.result == "SUCCESS" || currentBuild.result == null ) ) {
echo "last build failed"
}
需要注意的几件事:currentBuild.result默认为null(这被视为成功),所以如果它为null或“成功”,那么您就可以了。此外,您还需要在jenkinsurl.com/scriptApproval/上的groovy脚本批准页面中列出其中一些对象(它们将在您尝试运行脚本后出现)Ohhh,声明性管道。太酷了!很高兴他们在我发布的过程中添加了这一点。您在哪里找到了
CHANGE\u ID
和currentBuild
的文档?我对声明性管道的最大问题是,文档很浅——不管怎样,就是我找到的那些文档。老实说,我记不得了。只是谷歌搜索。如果你用谷歌搜索上面的代码,你可能会找到它。甚至可能是这样:)