跳过内容

渐进式发布

渐进式发布保留一个频道的稳定捆绑包 渐进式发布保留一个频道的稳定捆绑包 在不切换整个渠道的情况下, 向控制的设备子集进行 。当您想要在一次切换整个渠道之前进行真实的生产验证时,它是有用的。

Capgo 渠道中的渐进式发布控制
从渠道的信息板块中配置发布目标、百分比、缓存持续时间和自动暂停策略。

渐进式发布的工作原理

标题:渐进式发布的工作原理

每个渠道都可以有两个捆绑链接:

  • 稳定捆绑 — 指向渠道的正常捆绑。
  • 发布目标 — 逐渐发布的候选捆绑。

A rollout needs a stable bundle. In the dashboard, assign the stable bundle before choosing the target; with the Public API, an existing channel can supply versionrolloutVersion 在同一个POST请求中。Capgo为每个符合条件的设备做出随机决定,然后使用设备ID和滚动ID的哈希值进行缓存。这使得在配置的缓存持续时间内,同一设备的分组保持不变,而不是在每次更新检查时都改变。

Capgo会保留现有的决定:

  • 增加百分比 —已经被选中的设备仍然被选中;只有之前未被选中的设备的随机子集被添加。
  • 减少百分比 —— 选定群体中的随机一部分返回到稳定包中。
  • 设置百分比为 0% —— 没有新设备被选中。已运行启用的回滚目标的设备将继续接收该目标,直到您禁用、回滚或更改目标。
  • 暂停 —— 停止新设备进入,而已运行启用的目标的设备仍然保持该目标。
  • 禁用 —— 停止解析回滚目标;更新检查使用稳定包。
  1. 上传并将测试包作为频道的稳定包分配。
  2. 上传候选包而不替换稳定包。
  3. 打开频道 信息 tab, 将候选人设置为 目标, 选择一个小百分比,并启用滚动发布。
  4. 监控滚动发布在 观察, 日志洞察, 并查看渠道历史。只在小组健康时才增加百分比。
  5. 当它准备好时,促进目标到稳定。如果它不健康,暂停或回滚。

为捆绑包启动滚动发布 1.3.0 在 5%:

终端窗口
npx @capgo/cli@latest channel set production com.example.app \
--rollout-bundle 1.3.0 \
--rollout-percentage 5 \
--rollout-enable

增加已选中的设备不需要重新设置:

终端窗口
npx @capgo/cli@latest channel set production com.example.app \
--rollout-percentage 25

当频道已经有稳定的包时,bundle 上传命令可以在一步中将上传设置为滚动目标:

终端窗口
npx @capgo/cli@latest bundle upload com.example.app \
--path ./dist \
--channel production \
--rollout 5

查看完整的 频道 CLI 参考为 CLI 打包的参考 每个发布选项都有。

暂停、回滚或推广

标题:暂停、回滚或推广
操作它做什么
暂停防止新设备进入发布。已启用目标的设备保持不变。
恢复允许新合格设备再次进入。
禁用停止解析发布目标并使用稳定包。
回滚清除目标,禁用发布,重置百分比为 0%,并将设备恢复到稳定状态。
发布使发布目标指向稳定包,然后清除发布状态。

使用一个终端操作:

终端窗口
# Stop adding devices while you investigate
npx @capgo/cli@latest channel set production com.example.app --rollout-pause
# Make the candidate stable for everyone
npx @capgo/cli@latest channel set production com.example.app --rollout-promote
# Discard the candidate and return to stable
npx @capgo/cli@latest channel set production com.example.app --rollout-rollback

保持目标包可用,直到您发布它或回滚它。作为稳定包或发布目标链接的包,受保护免于删除。

自动暂停策略

标题:自动暂停策略

Capgo 可以每五分钟评估一个启用的发布,并在其失败信号超过您的阈值时采取行动。它测量发布目标在所选通道和时间窗口中的安装和失败次数,然后使用威尔逊置信下限,而不是原始失败率。

自动暂停默认禁用。配置这些字段在通道中 信息 标签或鼠标悬停 channel set:

  • 失败率阈值 以基点 (%) 表示(默认:5%)。阈值是触发策略所需的。500 窗口
  • 以分钟为单位(默认:60)。 置信度
  • 之间0 (默认: 1 可选最小尝试次数和失败次数,以避免对小样本采取行动。 0.95).
  • __CAPGO_KEEP_0__
  • 冷却时间 在分钟(默认值:60),防止重复操作。
  • 动作: pause, rollbacknotify.

pause 停止新发布的曝光, rollback 清除目标并返回稳定, notify 发送发布警告而不改变发布交付。

终端窗口
npx @capgo/cli@latest channel set production com.example.app \
--auto-pause-enabled \
--auto-pause-failure-rate-bps 500 \
--auto-pause-window-minutes 60 \
--auto-pause-confidence 0.95 \
--auto-pause-min-attempts 100 \
--auto-pause-min-failures 5 \
--auto-pause-action pause \
--auto-pause-cooldown-minutes 120

您可以通过相同的功能管理“]} 公共频道 API 或访问控制台:

  1. 打开一个应用,然后 频道.
  2. 选择频道。
  3. 打开 信息.
  4. 使用 渐进式发布 部分来选择目标、百分比、缓存持续时间和自动暂停策略。

对于通用频道路由和设备优先级,请参见 频道. 在进展式发布外部的紧急捆绑包恢复中,请参见 在线更新回滚.