首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在声明性语法中定义仅在构建恢复正常时才运行的post步骤

如何在声明性语法中定义仅在构建恢复正常时才运行的post步骤
EN

Stack Overflow用户
提问于 2017-05-10 21:13:11
回答 2查看 474关注 0票数 2

在jenkins管道中,您可以定义在特定条件下运行的post步骤。我正在向一个最重要的渠道发送构建状态的通知,但我不知道如何在失败后将构建恢复到稳定状态时进行报告。当构建开始失败时,“changed”选项也会运行,但我想使用“failure”部分来区分发送到mattermost的消息的类型。

有人知道怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2017-05-10 21:38:39

所以,当然在我发表文章之后,我找到了一个可行的解决方案,但我仍然对其他选择感兴趣。

代码语言:javascript
复制
changed {
    script {
        if (env.CHANGE_ID == null && currentBuild.result == null) {

                mattermostSend....
        }
   }
}
票数 1
EN

Stack Overflow用户

发布于 2017-05-10 21:44:25

您可以通过组合https://support.cloudbees.com/hc/en-us/articles/226419147-How-can-I-check-previous-build-status-in-a-Pipeline-Script-和与当前构建状态的比较来实现这一点。

代码语言:javascript
复制
if(currentBuild.rawBuild.getPreviousBuild()?.getResult().toString() != "SUCCESS" && ( currentBuild.result == "SUCCESS" || currentBuild.result == null ) ) {
    echo "last build failed"
}

需要注意的几件事: currentBuild.result缺省为null (这就是成功),所以如果它是null或"SUCCESS",那么就是好的。此外,您还需要将其中一些对象列入groovy脚本审批页面的白名单,该页面位于jenkinsurl.com/scriptApproval/ (它们将在您尝试运行脚本后出现在那里)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43893562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档