github actions 构建失败提醒有三类方式:步骤级用 if: ${{ failure() }} 主动捕获、平台级启用原生邮件/web通知、第三方工具集成slack/企微等,辅以gitify桌面监控。

GitHub Actions 构建失败提醒,核心在于“及时感知 + 快速触达”。不依赖等邮件,而是让告警在失败发生时立刻执行。主要有三类方式:步骤级主动捕获、平台级通知配置、第三方工具集成。
用 if: ${{ failure() }} 捕获步骤级失败
这是最轻量、最可控的方式——在工作流末尾加一个专门“守门”的步骤,只在前面任意步骤失败时才运行。关键点:
- 该步骤必须放在所有可能出错的步骤之后
- 使用 if: ${{ failure() }} 作为执行条件(不是
always()或cancelled()) - 可以执行任意命令:发 Slack、调企业微信 API、写日志、甚至触发另一个 workflow
示例(发送 curl 告警):
- name: Alert on failure
if: ${{ failure() }}
run: |
echo "Build failed in ${{ github.workflow }} on ${{ github.head_ref }}"
curl -X POST -H "Content-Type: application/json" \
--data '{"text":"⚠️ ${{ github.repository }}/${{ github.workflow }} 失败!"}' \
${{ secrets.WEBHOOK_URL }}
启用 GitHub 原生通知(邮件/Web)
适合不想改 workflow 文件、只想快速开通基础提醒的团队。操作路径:
- 进入 GitHub → 右上角「? Notifications」→ 「Settings」
- 左侧选「Repository notifications」→ 找到你的目标仓库
- 勾选「Workflow runs」→ 再勾选「Only for failed workflow runs」
- 通知方式选「Email」或「Web」即可(Web 通知会在 GitHub 页面顶部弹出)
注意:默认只对「你关注的仓库」生效;如果别人推送了失败 workflow,而你没关注该 repo,就不会收到。
用 Slack / 企微 / 飞书等第三方工具集成
适合已有协作平台、希望消息直达群聊或指定成员的场景。推荐做法:
- 用现成 Action,比如 ravsamhq/notify-slack-action 或 8398a7/action-slack
- 在 Secrets 中提前配置好 Webhook URL(如
SLACK_WEBHOOK_URL) - 把通知步骤放在 workflow 末尾,并设
if: always(),再用status: ${{ job.status }}区分成功/失败
小技巧:可在 message 中加入链接,一键跳转到失败详情页:
message_format: "[${{ job.status }}] ${{ github.workflow }} · ${{ github.head_ref }}\n<https: github.repository github.run_id>"
</https:>
搭配桌面工具实时监控(如 Gitify)
适合开发者个人日常高频使用,需要一眼看清状态。Gitify 这类工具会:
- 在 macOS 菜单栏 / Windows 任务栏显示图标(红色=失败,绿色=成功)
- 点击图标直接展开最近 5 条 workflow 运行记录
- 支持按仓库、workflow 名过滤,失败项高亮显示
配置要点:
- 首次启动需授权 GitHub,至少勾选
notifications和repo权限 - 设置里开启「Workflow runs」通知,否则图标不会响应构建状态
不复杂但容易忽略。











