Skip to main content
版本要求:此功能需要 On-call 标准版及以上订阅。了解更多
通过 Buildkite 组织的 Webhook 通知服务,将流水线的构建(Build)同步到 Flashduty On-call。每一次构建对应一条 Flashduty 变更;构建从排队、运行、出现失败到通过、失败或取消的每个状态,都会更新同一条变更。 建议只为部署类流水线开启推送:在 Webhook 中选择对应的流水线,或用分支过滤只推送发布分支的构建。

在 Flashduty On-call


  1. 进入 Flashduty 控制台,选择 集成中心 → 变更事件
  2. 选择 Buildkite,填写集成名称
  3. 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如 pipeline、ref)配置规则
  4. 点击 保存,复制生成的 推送地址

在 Buildkite 中配置


1

添加 Webhook 通知服务

进入 Buildkite 组织的 Settings → Notification Services,在 Webhook 一栏点击 Add。需要组织管理员权限。
2

填写推送地址

  1. Description:填写便于识别的名称,例如 Flashduty
  2. Webhook URL:粘贴 Flashduty 集成的完整推送地址
  3. Token:保持默认即可,Flashduty 通过推送地址中的 integration_key 鉴权
3

选择事件和流水线

  1. 在 Events 中勾选 build.scheduled、build.running、build.failing、build.finished 和 build.skipped
  2. 在 Pipelines 中选择要推送的流水线(全部、指定流水线、指定团队或集群的流水线)
  3. 如需只推送部分分支,在 Branch filtering 中填写分支规则,留空表示所有分支
  4. 点击 Add Webhook Notification 保存

一条变更是什么


一次构建是一条变更,变更标识(change_key)是构建的 build.id(Buildkite 平台内唯一的 UUID)。同一次构建的所有 build.* 事件更新同一条变更;同一流水线、同一分支的两次构建是两条变更,重新构建(Rebuild)也会产生新的构建和新的变更。

状态映射


Flashduty 按推送内容中的 build.state 确定状态: Done、Failed 和 Canceled 是结束状态,Flashduty 会记录变更结束时间。等待 block step 的构建以 build.finished 推送,状态为 passed 且 blocked 为 true,Flashduty 将其记为 Planned,构建继续运行并结束后更新为最终状态。 以下推送返回成功但不生成变更:ping、job.*、agent.*、cluster_token.* 等非构建事件。

变更内容


标签可用于路由和在变更列表中筛选:

常见问题


  • 确认 Webhook 勾选了 build.* 事件,只勾选 job.* 或 agent.* 事件不会产生变更
  • 确认构建所在的流水线和分支在 Webhook 的 Pipelines 和 Branch filtering 范围内
  • 在 Webhook 设置页底部点击 Load recent requests,查看最近 20 次推送和 Flashduty 的响应
不会。同一状态、同一时间的事件只记录一次。
  • unsupported build.state:收到了 Flashduty 尚未支持的构建状态,请联系我们
  • build.id is missing:推送内容不完整,请确认推送来自 Buildkite 的 Webhook 通知服务