文档

部署事件与CI集成配置

将 GitHub Actions、GitLab CI/CD 或其他 CI 系统与版本发布部署历史记录关联起来。

Coroid 仅在你的 CI/CD 确认后才会标记版本已部署。本页展示了流水线如何上报部署情况,无论是由 Coroid 触发还是自行运行。

Coroid

您的 CI/CD

环境

  1. 1.开始 针对指定的提交
  2. 2.部署 指定的提交
  3. 3.报告 正在运行,随后显示成功或失败状态,同时标明所部署的版本。
  4. 4.监控运行状态 通过金丝雀检查确认
仅当您的流水线反馈成功时,部署才算完成。若流水线自主启动,则跳过第一步。

以下内容均需在项目的对应环境中进行配置:设置 → 版本发布 → 部署流水线在此处创建一个上报令牌。所有者或管理员仅能查看一次该令牌。将其作为机密信息存储在该环境的 CI 流水线中。Coroid 仅保存其哈希值,替换令牌后会立即吊销旧令牌。该令牌仅能用于上报对应项目和环境的数据。永不将其放入仓库文件或浏览器请求中。

GitHub Actions 和 GitLab CI/CD

如果你希望部署到…在版本发布页面上点击该按钮时,请选择Coroid 会启动一个 GitHub Actions 工作流或Coroid 会启动一个 GitLab CI/CD 流水线在对应环境的部署流水线设置中配置即可。输入准确的部署任务名称、分支或标签引用,以及适用的 GitHub 工作流文件名。该引用在请求时必须指向对应的发布提交。GitHub 工作流会接收coroid_release_id、coroid_attempt_id、coroid_commit_sha、和coroid_environment这些输入参数,此外coroid_version、coroid_build_number和coroid_release_name当工作流声明了相关参数时也会接收。GitLab 会收到对应的大写COROID_*变量。利用这些值即可部署并上报准确的 SHA 值和尝试次数。将版本号写入构建过程介绍了如何将版本号嵌入构建流程。

将环境回调令牌存储在 GitHub Actions 机密信息或 GitLab CI/CD 掩码变量中。发送一个running事件以标识部署任务开始,以及终端succeeded、failed、或cancelled事件以标识部署结束。Coroid 会在确认对应流水线的成功状态前,先校验提供方的运行记录、提交内容和指定任务。提供方的运行页面仍是查看日志的入口。Coroid 生产环境工作流其中包含具体的 GitHub Actions 示例;可根据你的仓库调整其中的机密信息名称和任务配置。

通用 CI 回调

外部流水线无需启用调度功能即可发送相同事件。使用对应环境的限定范围承载令牌进行身份验证。该端点接受具有以下版本结构的 JSON 请求:

POST /api/v1/release-deployment-events
Authorization: Bearer <environment-callback-token>
Content-Type: application/json
{
  "schemaVersion": 1,
  "eventId": "ci:run-812:production:succeeded",
  "providerRunId": "run-812",
  "projectId": "<project-uuid>",
  "environmentKey": "production",
  "repository": "owner/repository",
  "commitSha": "0123456789abcdef0123456789abcdef01234567",
  "status": "succeeded",
  "occurredAt": "2026-09-24T12:00:00Z",
  "runUrl": "https://ci.example.com/runs/812"
}

包含releaseId和attemptId在由 Coroid 发起的运行中上报时使用。添加version和buildNumber用于记录已部署的内容。对于托管在 Coroid 上的项目,repository即为项目 ID。failureReason可解释运行失败的原因。使用queued、running、succeeded、failed、或cancelled用于status在整个运行过程中保留一个providerRunId并为每次状态转换赋予唯一的eventId同一事件的重试请求应保留原有 ID;新的 CI 运行则需要新的运行 ID。事件时间戳必须是最新的。Coroid 会在应用该事件前校验仓库、环境、提交内容、凭证范围及终端状态;存在冲突的事件会被搁置以待审核。没有预先准备版本的合法部署可生成观测到的版本,其与预检批准的候选版本需明确区分。

对于没有回调功能的流水线,所有者或管理员可选择记录外部部署在版本发布页面上点击该选项。填写对应环境、匹配的提交内容、时间以及原因或证据链接。生成的手动 attestation 会记录最终结果,但不会宣称 Coroid 执行了 CI 流程或通过相关校验。