Skip to main content
版本要求:此功能需要 On-call 标准版及以上订阅。了解更多
通过 EAS Webhook 将 Expo EAS 的构建(Build)和提交(Submit)结果同步到 Flashduty On-call。每次构建、每次提交各对应一条 Flashduty 变更,在其结束时记录一次。 EAS 只在构建或提交结束时推送,没有开始事件,因此变更没有 Processing 中间状态,直接记录为结束状态:Done、Failed 或 Canceled。这里的变更是应用的构建和向应用商店提交,不是线上服务的部署。

在 Flashduty On-call


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

在 Expo EAS 中配置


1

为构建创建 Webhook

在项目目录下运行(需已安装并登录 EAS CLI):
命令会提示输入签名密钥(Secret),至少 16 个字符。Flashduty 通过推送地址中的集成 key 鉴权,不校验 expo-signature,密钥可填任意满足长度的值。推送地址把集成 key 放在路径里(.../event/push/change/expo-eas/<integration_key>),而不是 ?integration_key= 查询参数,因为 EAS 投递时会丢弃 Webhook 地址中的查询参数。请原样粘贴 Flashduty 显示的推送地址。
2

为提交创建 Webhook

如需同步 EAS Submit 的结果,再运行一次,事件类型改为 SUBMIT:
两种事件使用同一个推送地址,Flashduty 根据推送内容区分构建和提交。
3

验证

Webhook 按项目配置,需要在每个要同步的项目中分别创建,可用 eas webhook:list 查看。EAS 没有测试推送:运行一次 eas build 或 eas submit,结束后即可在 Flashduty 变更列表中看到记录。

一条变更是什么


状态映射


EAS 文档只列出这三种结束状态。出现其他状态值时推送返回 InvalidParameter,不生成变更。

变更内容


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

常见问题


EAS Webhook 只在构建或提交结束时推送,不推送排队和运行中的状态。变更在结束时以最终状态出现。
不会。EAS 收到 200–399 以外的响应后会按退避策略重试,重试内容相同,Flashduty 以结束时间去重,只记录一次。
不需要。Flashduty 通过推送地址路径中的集成 key 鉴权,不校验 expo-signature。创建 Webhook 时 EAS 要求填写至少 16 个字符的密钥,填任意值即可。
  • id is missing:推送内容不完整,请确认推送来自 EAS Webhook
  • unknown status:出现了未收录的状态值,请联系我们补充映射
  • delivery is neither a build nor a submission:推送中既没有构建页面地址(buildDetailsPageUrl)也没有提交页面地址(submissionDetailsPageUrl)
  • invalid completedAt 或 invalid updatedAt:推送中的时间字段格式不正确