流水线通知是什么
流水线通知把 CI/CD 的状态推到人所在的地方——企业群机器人、邮件、MR 评论或看板。设计的核心不是「发得更多」而是分级:失败必达、恢复可选、成功降频汇总,避免噪声淹没真正需要行动的信号。它的最终目标是缩短「失败发生」到「有人接手」之间的时间差。
基本信息
| 适用平台 | GitLab CI、GitHub Actions、Jenkins 等均支持邮件与 Webhook |
|---|---|
| 通道 | 邮件、企业群机器人(钉钉/企业微信/Slack)、MR/PR 评论、看板告警 |
| 分级 | 失败必达;恢复通知可选;成功与日常工作用汇总降频 |
| 对象 | 默认分支与发布流水线全量通知,特性分支按需 |
典型使用场景
- 主干守护:默认分支失败第一时间触达提交者与值班人
- 发布跟踪:生产部署结果通报到发布群,附版本号与变更链接
- MR 反馈:把测试失败以评论回写 MR,作者不离开评审界面就能修
- 值班升级:红灯超过阈值自动升级通知负责人,避免「没人看见」
- 每日汇总:低频团队用一张日报收口所有流水线动态
- 跨系统联动:对接到值班系统或工单,失败自动开单、恢复自动关单
GitLab 流水线通知作业
GitLab 流水线通知作业
notify:token:
stage: notify
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"
script: ./ci/send-notify.sh # 脚本内调群机器人 webhook,消息带流水线链接与责任人分级策略对照
| 事件 | 是否推送 | 说明 |
|---|---|---|
| 主干流水线失败 | 必推 | 直通提交者与值班,附日志链接 |
| 失败恢复(转绿) | 推荐推 | 让值班者知道问题已消除 |
| 特性分支失败 | 按需 | 一般只回写 MR 评论,不进群 |
| 日常成功 | 汇总 | 每日一报或看板呈现,不逐条推 |
通知里带上「下一步动作」链接(日志、重跑入口、责任人),比只报「失败了」有效得多。
失败与恢复要配对发送:只发失败不发恢复,值班者无法判断问题是否已自行消失,会催生「狼来了」式的忽视。
给通知加去重键(流水线 ID + 状态):同一问题重复触发时更新原消息而不是反复刷屏,恢复时同一线程里补一条即可。