SuperAPI AI 工具集

capgo-release-management

部署与运维

查看项目

更新于 10-14 09:12

技能介绍

用途

Capgo Release Management 用于通过 CLI 完成 Capgo OTA bundle 的发布、推广、回滚和清理。它把发布操作中的常见任务集中到一组命令行指令上,包括上传 bundle 并关联渠道、查看渠道当前版本、判断改动是否可 OTA 安全下发、执行渐进式发布、在出现问题时回滚,以及清理或删除不再使用的 bundle 和渠道。

主要能力

技能支持以下操作:

  • 上传 bundle 并关联渠道:bundle upload [appId] --path ./dist --channel production,多个渠道可用逗号分隔。
  • 判断改动是否 OTA 安全:bundle releaseType [appId] --channel production 输出 OTA 或 native;bundle compatibility 可查看原生差异。
  • 查看当前生效版本:channel currentBundle production [appId] --quiet。
  • 推广与回滚:channel promote staging production、channel set production [appId] --bundle <previous-version>。
  • 渐进式发布:上传时使用 --rollout 10,再通过 --rollout-percentage 50、--rollout-promote、--rollout-rollback 控制。
  • 渠道管理:channel add、channel set(含 --disable-auto-update 和平台/设备开关)。
  • 列出与清理:bundle list、channel list、bundle cleanup、bundle delete、channel delete。
  • 预览与加密:app set --preview once、get-qr、bundle upload --qr-preview;key create、key save、key delete_old。
  • 自定义 zip 与外部上传:bundle zip、bundle encrypt、bundle upload --external。 所有命令均以 npx @capgo/cli@latest <command> 形式调用,多数命令支持 -a, --apikey,在 Capacitor 项目中 appId 可省略。

使用方式

建议按以下流程操作:

  1. 先检查:列出渠道、查看当前生效版本、判断 OTA 安全性。如果判定为 native,应停止并转交原生构建流程。
  2. 上传:执行 npm run build 后上传。版本默认取自 package.json,可用 --bundle <semver> 覆盖;版本必须唯一、大于 0.0.0 且不能是已删除版本。使用 --delta 时,CLI 会拒绝超过 10,000 个文件的 delta 上传。CI 中可使用 --fail-on-incompatible。
  3. 推广与发布:用 channel promote 将 staging 推广到 production;渐进式发布先上传 --rollout,观察数据后再执行 --rollout-promote。仅在明确需要切换生产流量时更改默认渠道。
  4. 回滚:列出 bundle 后通过 channel set --bundle <version> 重新关联旧版本,或在发布过程中使用 --rollout-rollback。设备将在下一次更新检查时获取变更。
  5. 加密(可选):运行 key create 生成密钥并保存公钥到配置,npx cap sync 确保公钥随原生应用发布,上传时传入 --key-v2 ./.capgo_key_v2。CI 中私钥只保存在 runner,并加入 .gitignore。

适用场景

该技能适合需要在 Capacitor 项目中进行 OTA 发布的开发者或团队,尤其是需要上传、管理渠道、执行渐进式发布、回滚版本或判断改动是否可 OTA 安全下发的场景。也可用于设置 bundle 加密、清理旧版本,以及通过 QR 预览进行测试。

限制

不适用于以下情况:应用侧更新器代码或配置(notifyAppReady、autoUpdate、setChannel)应使用 capgo-live-updates;需要原生二进制构建时应使用 capgo-native-builds;组织、成员、2FA 或 API 密钥策略管理应使用 capgo-organization-management;端到端发布流水线设计应使用 capgo-release-workflows。此外,某些命令并不存在(如 channel create、bundle revert、upload --sign、key verify 以及不包含 bundle 的顶层 capgo upload),不应使用。bundle delete 是永久删除,且版本号不可复用;bundle cleanup --ignore-channel 会同时删除关联渠道,需谨慎使用。releaseType 只识别原生包元数据,不识别 ios/ 或 android/ 目录的直接改动。