mcpField
G
gplay-release-flow

gplay-release-flow

github.com/tamtomクラウド・DevOps52391 回インストール13 週間前に更新
リポジトリ

gplay-release-flow について

gplayコマンドラインでGoogle PlayのAndroidアプリ公開を管理するスキルです。公開トラック、段階的ロールアウト、メタデータ、検証、トラック間の昇格を扱います。

主な機能

  1. 01テスト・本番トラックへの公開
  2. 02段階的ロールアウトの管理
  3. 03ストア掲載情報とスクリーンショットのアップロード
  4. 04多言語リリースノートの設定
  5. 05リリースの検証と昇格

活用シーン

  1. 01Androidアプリのビルド公開
  2. 02本番リリースの段階的な拡大
  3. 03テスト済みビルドのトラック昇格
  4. 04公開前のリリース確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tamtom/gplay-cli-skills --skill gplay-release-flow

インストール後、Claude Code で/gplay-release-flowを入力して読み込まれたか確認します。

詳細

リリースフロー(内部、ベータ、本番)

Google Play ストアに新しいビルドを公開する必要がある場合に、このスキルを使用します。

前提条件

  • 認証情報が設定されていることを確認します(gplay auth login または GPLAY_SERVICE_ACCOUNT 環境変数)。
  • ビルドは AAB(App Bundle)または APK である必要があります。
  • バージョンコードは以前のリリースより大きい必要があります。
  • サービスアカウントには、Play Console で「リリース マネージャー」権限が必要です。

Android リリース

エンドツーエンドで実行する場合の推奨コマンド

内部トラック(内部テスト用):

gplay release \
  --package com.example.app \
  --track internal \
  --bundle app-release.aab

ベータトラック(ベータテスター用):

gplay release \
  --package com.example.app \
  --track beta \
  --bundle app-release.aab \
  --release-notes @release-notes.json

段階的ロールアウトを伴う本番リリース(段階的に公開):

gplay release \
  --package com.example.app \
  --track production \
  --bundle app-release.aab \
  --release-notes @release-notes.json \
  --rollout 0.1

ドライラン(実行せずにリリースをプレビュー):

gplay release \
  --package com.example.app \
  --track production \
  --bundle app-release.aab \
  --dry-run
メタデータ(ストア掲載情報とスクリーンショット)を含むリリース

ディレクトリからストア掲載情報を含める:

gplay release \
  --package com.example.app \
  --track production \
  --bundle app-release.aab \
  --listings-dir ./metadata \
  --screenshots-dir ./metadata

メタデータまたはスクリーンショットをスキップする:

# Upload bundle only, skip metadata sync
gplay release \
  --package com.example.app \
  --track production \
  --bundle app-release.aab \
  --skip-metadata

# Upload bundle and metadata, skip screenshots
gplay release \
  --package com.example.app \
  --track production \
  --bundle app-release.aab \
  --listings-dir ./metadata \
  --skip-screenshots

掲載情報とスクリーンショットのディレクトリを組み合わせる:

gplay release \
  --package com.example.app \
  --track beta \
  --bundle app-release.aab \
  --listings-dir ./metadata/listings \
  --screenshots-dir ./metadata/images \
  --release-notes @release-notes.json
手動の手順(より細かく制御する場合)
  1. 編集セッションを作成:

    EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')
    
  2. バンドルをアップロード:

    gplay bundles upload \
      --package com.example.app \
      --edit $EDIT_ID \
      --file app-release.aab
    
  3. トラックを更新:

    gplay tracks update \
      --package com.example.app \
      --edit $EDIT_ID \
      --track production \
      --releases @releases.json
    

    --releases には、トラックリリースの JSON 配列(または @file)を指定します。

  4. 編集を検証:

    gplay edits validate --package com.example.app --edit $EDIT_ID
    
  5. 編集をコミット(変更を公開):

    gplay edits commit --package com.example.app --edit $EDIT_ID
    

トラックの昇格

リリースをあるトラックから別のトラックに昇格させます。

# Promote from internal to beta
gplay promote \
  --package com.example.app \
  --from internal \
  --to beta

# Promote from beta to production with 25% rollout
gplay promote \
  --package com.example.app \
  --from beta \
  --to production \
  --rollout 0.25

段階的ロールアウトの管理

ロールアウト率 10% で開始(割合 0.1):

gplay release \
  --package com.example.app \
  --track production \
  --bundle app.aab \
  --rollout 0.1

50% に引き上げる(割合 0.5):

gplay rollout update \
  --package com.example.app \
  --track production \
  --rollout 0.5

ロールアウトを停止(配信を一時停止):

gplay rollout halt --package com.example.app --track production

ロールアウトを再開:

gplay rollout resume --package com.example.app --track production

ロールアウトを完了(100% に公開):

gplay rollout complete --package com.example.app --track production

リリースノートの形式

--release-notes フラグは、JSON 配列(複数ロケール)、プレーンテキスト(en-US に自動割り当て)、またはいずれかを指定する @file パスの 3 つの形式を受け付けます。ロケール専用のフラグはありません。

JSON 配列形式(複数ロケール)

release-notes.json — {language, text} エントリの JSON 配列:

[
  { "language": "en-US", "text": "Bug fixes and performance improvements" },
  { "language": "es-ES", "text": "Correcciones de errores y mejoras de rendimiento" },
  { "language": "fr-FR", "text": "Corrections de bugs et améliorations des performances" }
]

--release-notes @release-notes.json で渡します。

プレーンテキスト形式(単一ロケール)

リリースノートをプレーンテキストで指定すると、en-US に自動割り当てされます:

gplay release \
  --package com.example.app \
  --track beta \
  --bundle app.aab \
  --release-notes "Bug fixes and performance improvements"

または、ファイル(プレーンテキストまたは JSON 配列)を @ で指定します:

gplay release \
  --package com.example.app \
  --track beta \
  --bundle app.aab \
  --release-notes @release-notes.txt

リリースフラグのリファレンス

フラグ説明
--packageアプリのパッケージ名(必須)
--track対象トラック(production、beta、alpha、internal。デフォルト:internal)
--bundleAAB ファイルのパス(--bundle または --apk のどちらか一方を使用)
--apkAPK ファイルのパス(--bundle の代わりに指定)
--release-notesリリースノート:プレーンテキスト(en-US に自動割り当て)、{language, text} の JSON 配列、または @file
--rollout段階的ロールアウトの割合(0.0~1.0。デフォルト:全体にロールアウトする場合は 1.0)
--listings-dir同期するストア掲載情報を含むディレクトリ
--screenshots-dirアップロードするスクリーンショットを含むディレクトリ
--skip-metadataリリース中のメタデータ/掲載情報の同期をスキップ
--skip-screenshotsリリース中のスクリーンショットのアップロードをスキップ
--dry-run実行せずにリリースをプレビュー
--output出力形式(json、table、markdown)

リリース前チェックリスト

リリース前に、次の項目を確認してください。

  • バージョンコードが増加している
  • AAB/APK が正しいキーストアで署名されている
  • ProGuard/R8 のマッピングファイルがアップロードされている(クラッシュレポート用)
  • すべてのロケールのリリースノートが作成されている
  • 内部/ベータトラックでテストが完了している
  • サービスアカウントに適切な権限がある
  • ドライランが成功する:gplay release ... --dry-run

一般的なリリース戦略

戦略 1:内部 -> ベータ -> 本番

# Week 1: Internal
gplay release --package com.example.app --track internal --bundle app.aab

# Week 2: Beta (after testing)
gplay promote --package com.example.app --from internal --to beta

# Week 3: Production with staged rollout
gplay promote --package com.example.app --from beta --to production --rollout 0.1
gplay rollout update --package com.example.app --track production --rollout 0.5  # Day 2
gplay rollout complete --package com.example.app --track production             # Day 7

戦略 2:段階的ロールアウトで本番に直接リリース

# Day 1: 10%
gplay release --package com.example.app --track production --bundle app.aab --rollout 0.1

# Day 2: 25%
gplay rollout update --package com.example.app --track production --rollout 0.25

# Day 3: 50%
gplay rollout update --package com.example.app --track production --rollout 0.5

# Day 7: 100%
gplay rollout complete --package com.example.app --track production

戦略 3:メタデータを含む全体リリースとドライランによる検証

# 1. Dry run to verify everything
gplay release \
  --package com.example.app \
  --track production \
  --bundle app.aab \
  --listings-dir ./metadata \
  --screenshots-dir ./metadata \
  --release-notes @release-notes.json \
  --rollout 0.1 \
  --dry-run

# 2. Execute the release
gplay release \
  --package com.example.app \
  --track production \
  --bundle app.aab \
  --listings-dir ./metadata \
  --screenshots-dir ./metadata \
  --release-notes @release-notes.json \
  --rollout 0.1

注記

  • コマンドごとの正確なフラグを確認するには、必ず --help を使用してください。
  • 人が読みやすい出力には --output table を使用します。デフォルトは JSON です。
  • CI/CD では、GPLAY_SERVICE_ACCOUNT 環境変数を使用します。
  • クラッシュ時のシンボル化のため、各リリース後に難読化解除ファイルをアップロードしてください。
  • 実際にデプロイする前にリリースを検証するには、CI で --dry-run を使用してください。

コメント