段階的なロールアウト
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
プログレッシブロールアウトでは、チャネルの 安定版フォールバックを提供します をそのままで、別の ロールアウト対象 を制御されたデバイスのサブセットに配信します。ほとんどの本番ユーザーは安定版のままです。ロールアウト対象のユーザーだけが、あなたが ロールアウトを完了 または ロールアウトをロールバック.

Progressive rollout のエンドツーエンドの仕組み
「Progressive Rolloutsのエンドツーエンドの仕組み」セクション各チャンネルは同時に2つのbundleリンクを持てます:
| コンソールラベル | API / CLI | 配信対象 |
|---|---|---|
| 安定版フォールバック | 安定版バンドル (version で Channels POST) | チャネル上のすべてのデバイスのうち、 決して ロールアウトコホートに含まれるもの。 |
| ロールアウト対象 | ロールアウト対象 (rolloutVersion / rollout_version) | ロールアウトが有効で、かつ一時停止されていない間、Capgo がロールアウト対象としてランダムに選択したデバイスのみが 対象です。 (一時停止中は除く) |
アップデート確認時のプロセス
「アップデート確認時の挙動」セクション- デバイスは、自身のチャンネルのアップデートについて Capgo に問い合わせます。
- ロールアウトが 無効である場合、またはターゲットが設定されていない場合、Capgo は 安定版フォールバックを提供します.
- ロールアウトが 対象です。 と 一時停止、コホートに属するデバイスは引き続き ロールアウト対象。それ以外のユーザーには 安定版フォールバックを提供します.
- ロールアウトが 対象です。 で一時停止されていない場合、Capgo はこのデバイスがロールアウトコホートに属しているかを確認します:
- コホート内 → ロールアウト対象。
- コホート外 → 安定版フォールバック。
Capgo は対象となる各デバイスに対してランダムに判定し、デバイスIDとロールアウトIDのハッシュを使って結果をキャッシュします。これによりコホートは スティッキー となり、設定されたキャッシュ期間中は、すべての更新チェック時に再抽選されることはありません。
ロールアウトの有効化
「ロールアウトの有効化」セクションロールアウトにはまず安定版フォールバックが必要です。ダッシュボードで、ロールアウト対象を選択する前に安定版バンドルを割り当ててください。 公開チャンネル API、既存のチャネルが供給できます version と rolloutVersion 同じ POST リクエスト内で。
配信を開始するには:
- 設定する ロールアウト対象 (または bundle をアップロード/割り当て — 参照 bundle のアップロードと割り当て).
- 選択する パーセンテージ をクリックし、 パーセンテージを適用.
- クリック ロールアウトを有効化.
ロールアウトを有効にするまで、ターゲットとパーセンテージを設定しても、デバイスが受け取る内容は変わりません。
パーセンテージの変更
セクション「パーセンテージの変更」コンソールでパーセンテージを編集し、 パーセンテージを適用 をクリックして保存します。Capgo は可能な限り既存の決定を保持します:
- パーセンテージを上げる — すでに選択されているデバイスはそのまま選択されたままです。以前未選択だったデバイスのランダムなサブセットのみが追加されます。
- パーセンテージを下げる — 選択したコホートのランダムなサブセットが安定版のフォールバックに戻ります。
- パーセンテージを 0% に設定 — 新しいデバイスは選択されません。有効なロールアウト対象を実行中のデバイスは、無効化、ロールバック、または対象の変更を行うまで、引き続きその対象を受け取ります。
- ロールアウトを一時停止 — 新しいデバイスの参加を停止しますが、有効な対象を実行中のデバイスはそのまま残ります。
- ロールアウトを無効化 — ロールアウト対象の解決を停止します。アップデートチェックは安定版のフォールバックを使用します。
bundle のアップロードと割り当て
セクション「bundleのアップロードと割り当て」チャンネルでは を使用して progressive rolloutが設定されている場合、新しいアップロードとbundleリンクは次に送られます: ロールアウト対象 デフォルトで。 安定版フォールバック 明示的に置き換える選択をしない限り、変更されません。
デフォルトのアップロードルーティング
「デフォルトのアップロードルーティング」セクション| Channelの状態 | デフォルトのアップロード / 割り当て | 安定版フォールバック | ロールアウト対象 |
|---|---|---|---|
| いいえ progressive ロールアウトが設定済み | チャンネルに配信される | アップロードに設定 | 該当なし |
| Progressive rollout 設定済み | チャンネルに配信される | 変更なし | アップロードに設定 |
CLI と API のパス
セクション「CLI と API のパス」| bundle の配信方法 | 安定版フォールバック | ロールアウト対象 | 備考 |
|---|---|---|---|
bundle upload --channel <name> (追加フラグなし) | ロールアウトチャネルでは変更なし; 設定 ロールアウトなしの場合 | 設定 ロールアウトチャネルでは | コンソールのデフォルト設定と一致します。 |
bundle upload --channel <name> --rollout <percent> | 変更なし | 設定; ロールアウト 対象です。 そのパーセンテージで | アップロードして有効化するだけ。 |
bundle upload --channel <name> --stable | 置換済み | 変更なし | エスケープハッチ — 意図的に安定版へ置き換える手段。 |
bundle upload を使用して いいえ --channel | 変更なし | 変更なし | 登録のみ。以下と連携: channel set または API。 |
| コンソールのリンクダイアログ → Auto(推奨) | ロールアウトチャネルでは変更なし | 設定 ロールアウトチャネルでは | デフォルトの選択です。 |
| コンソールのリンクダイアログ → ロールアウト対象 | 変更なし | 設定 | 明示的なロールアウト対象 |
| コンソールのリンクダイアログ → Stable を置き換え | 置換済み | 変更なし | エスケープハッチ |
PUT /bundle/ を使用して target: "auto" | ロールアウトチャネルでは変更なし | 設定 ロールアウトチャネルでは | API のデフォルト。 |
PUT /bundle/ を使用して target: "rollout" | 変更なし | 設定 | 明示的なロールアウト対象 |
PUT /bundle/ を使用して target: "stable" | 置換済み | 変更なし | エスケープハッチ |
channel set --bundle <version> | 置換済み | 変更なし | 明示的な安定版オーバーライド |
channel set --rollout-bundle <version> (+ --rollout-percentage, --rollout-enable) | 変更なし | 設定済みまたは変更済み | アップロードせずにターゲットを設定。 |
Channels POST version | 置換済み 設定時 | 変更なし | 明示的な安定版オーバーライド |
Channels POST rolloutVersion | 変更なし | 設定済みまたは変更済み 設定時 | プログラムによるターゲット割り当て。 |
CLI の例
セクション「CLIの例」ロールアウト設定済みチャネルでのデフォルトアップロード(ロールアウト対象、stable は変更なし):
bunx @capgo/cli@latest bundle upload com.example.app \ --path ./dist \ --channel productionアップロードし、ロールアウト対象を設定して 5% で有効化:
bunx @capgo/cli@latest bundle upload com.example.app \ --path ./dist \ --channel production \ --rollout 5stable を明示的に置き換える:
bunx @capgo/cli@latest bundle upload com.example.app \ --path ./dist \ --channel production \ --stableリンクせずにアップロードし、ロールアウトを設定します:
bunx @capgo/cli@latest bundle upload com.example.app --path ./dist -b 1.3.0
bunx @capgo/cli@latest channel set production com.example.app \ --rollout-bundle 1.3.0 \ --rollout-percentage 5 \ --rollout-enableAPI を明示的なターゲットで割り当て (auto | stable | rollout):
curl -X PUT \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "version_id": 456, "channel_id": 789, "target": "rollout" }' \ https://api.capgo.app/bundle/すでに選択されているデバイスを再設定せずに、露出を増やします:
bunx @capgo/cli@latest channel set production com.example.app \ --rollout-percentage 25使用する --rollout-percentage-bps パーセント単位のステップより細かい制御が必要な場合 (例: 50 = 0.5%).
詳細については、 channel CLI リファレンス と bundle CLI リファレンス すべてのロールアウトオプションに対応。コンソールUXは capgo.app#3313 に搭載されています.
Progressive rollout セクション(dashboard)
「Progressive rollout section (dashboard)」セクションアプリを開く → チャンネル → チャネルを選択 → 情報 → 段階的ロールアウト.
セクションの表示内容: ロールアウト対象 と 安定版フォールバック 2つのバンドルリンクに使用します。 ロールアウト対象を変更 別の候補バンドルを選択します。パーセンテージを編集した後、 パーセンテージを適用 をクリックして保存します。
| コントロール | 仕組み | すでにコホートに含まれているデバイス | 新規対象デバイス |
|---|---|---|---|
| ロールアウト対象を変更 | 設定します rolloutVersion。変更すると新しいロールアウトIDと新しいコホートが開始されます。チャネル(デフォルト)にバンドルをアップロードまたは割り当てても、ロールアウト対象が設定されます。 | 前回の対象を保持し、再度チェックインして新しい判定ルールに一致するまでそのままにします。 | 新しい対象に対する割合で選択されます。 |
| パーセンテージを適用 | 入力した割合を保存します。 | 増加時は保持されます。減少時はランダムなサブセットが除外される場合があります。 | 上記の割合ルールに基づいて追加または除外されます。 |
| ロールアウトを有効化 | 設定された対象と割合でロールアウト配信を有効にします。 | 次の更新チェックまで、即座の変更はありません。 | 次のチェックで選択される可能性があります。 |
| ロールアウトを一時停止 | 新しいデバイスの流入を停止します。 | ロールアウト対象を維持します。 | 安定したフォールバックを受信します 次回のチェック時に。 |
| ロールアウトを再開 | 一時停止を解除します。 | 変更ありません。 | 次のチェックで再び選択される可能性があります。 |
| ロールアウトを無効化 | ロールアウト対象の解決を停止します。Capgo はすべてのユーザーに対して安定版フォールバックを使用します。 | 安定版フォールバックに切り替え 次回のチェック時に。 | 安定版フォールバックを受け取る。 |
ロールアウトを完了 (API: promoteToStable; CLI: --rollout-promote) | ロールアウト対象を新しい安定版フォールバックに設定し、ロールアウト状態をクリアします。確認者: プログレッシブロールアウトを完了しますか? — 対象が全員にとって安定版になり、以前の安定版フォールバックが置き換えられ、パーセンテージがリセットされます。 | 全員の安定版フォールバックに なる。 | 完了したバンドルを 安定版として受け取る。 |
ロールアウトをロールバック (API: rollback; CLI: --rollout-rollback) | ターゲットをクリアし、ロールアウトを無効化、パーセンテージを0%にリセットして、デバイスを安定版フォールバックに戻します。 | 安定版フォールバックに戻す 次回のチェック時に。 | 安定版フォールバックを受け取る。 |
終了アクションは一度に1つだけ使用してください(ロールアウトを完了 と ロールアウトをロールバック 1回の API 呼び出しでは組み合わせられません):
# Stop adding devices while you investigatebunx @capgo/cli@latest channel set production com.example.app --rollout-pause
# Allow new devices to enter againbunx @capgo/cli@latest channel set production com.example.app --rollout-resume
# Complete rollout — candidate becomes stable for everyonebunx @capgo/cli@latest channel set production com.example.app --rollout-promote
# Rollback rollout — discard candidate and return to stablebunx @capgo/cli@latest channel set production com.example.app --rollout-rollbackロールアウト対象のバンドルを削除されないよう、 ロールアウトを完了 または ロールアウトをロールバック。安定フォールバックまたはロールアウト対象としてリンクされたバンドルは、削除から保護されます。
安全なワークフロー
セクション「安全なワークフロー」Progressive rollout は、チャネル全体を一度に切り替えることなく、本番環境で検証できるように設計されています。実用的な手順:
- 安定したフォールバックが正常であることを確認します。 大多数のユーザーに提供し続けることを許容できるバージョンであるべきです。
- 候補バージョンをアップロードします ロールアウト設定済みのチャネル(
bundle upload --channel <name>に反映され、 ロールアウト対象 は変更されません)に、または 安定版フォールバック を使用します--rollout <small-percent>同じステップで公開を有効にします。 - 小規模から開始します — 最初のシグナルには 1〜5% で十分です。クリックします パーセンテージを適用、次に ロールアウトを有効化. 失敗率が急増したときに Capgo の公開を止めたい場合は、auto-pause をオンにしてください。
- 展開範囲を広げる前にモニタリングしましょう。 使用する Observe でバージョンの健全性と ログ分析 エラーパターンを確認し、チャンネルの 履歴 タブで設定変更を確認してください。ロールアウト対象と安定版フォールバックを比較し、コホートが健全に見えるまでパーセンテージを上げないでください。
- 段階的に増やす — パーセンテージを編集し、クリック パーセンテージを適用、段階的に拡大します(例: 5% → 25% → 50% → 100%)。Capgo は、割合を上げた際に、すでにコホートに属しているデバイスをそのまま維持します。
- 確信が持てたらロールアウトを完了 — 確認 プログレッシブロールアウトを完了しますか? 候補バージョンを全ユーザーの安定フォールバックにします。
- 問題があれば、まずロールアウトを一時停止 — 調査中に新しいデバイスへの展開を停止します。不良ビルドに適用済みのデバイスは、あなたが ロールアウトをロールバック または ロールアウトを無効化.
自動一時停止ポリシー
「Auto-pause ポリシー」セクションCapgo は、有効なロールアウトを5分ごとに評価し、失敗シグナルが設定した閾値を超えた時点でアクションを実行できます。選択したチャンネルと時間枠でロールアウト対象のインストール数と失敗数を計測し、単純な失敗率ではなく Wilson 信頼区間の下限を使って判断します。
Auto-pause はデフォルトで無効です。チャンネルの以下のフィールドで設定します。 情報 タブまたは channel set:
- 失敗率のしきい値 ベーシスポイント(
500= 5%)。ポリシーをトリガーするにはしきい値が必要です。 - ウィンドウ 分単位(デフォルト: 60)。
- 信頼度 の間
0と1(デフォルト:0.95). - 任意の最小試行回数と失敗回数(サンプルが少なすぎる場合の誤作動を防ぐため)。
- クールダウン 分(デフォルト: 60)で、同じアクションの繰り返しを防ぎます。
- アクション:
pause,rollback、またはnotify.
pause 新しいロールアウトの公開を停止し、 rollback ターゲットをクリアして安定したフォールバックに戻し、 notify ロールアウトの配信を変えずに、ロールアウトのアラートを送信します。
bunx @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 120API と dashboard へのエントリーポイント
セクション「API とダッシュボードのエントリポイント」- ダッシュボード: アプリ → チャンネル → channel → 情報 → 段階的ロールアウト
- API のチャンネル: 公開チャンネル API ロールアウトのフィールド、プロモート、ロールバック用
- API の Bundle 割り当て: PUT
/bundle/を使用してtarget:auto,stable、またはrollout
一般的なチャンネルルーティングとデバイスの優先順位については、こちらを参照 チャンネル. プログレッシブロールアウト以外で緊急にbundleを復旧する場合は、以下を参照してください: live update のロールバック.