releases
Manage releases, uploads, promotions, rollouts, and release notes.
Commands
| Command | Description |
|---|---|
releases upload | Upload AAB/APK and assign to a track |
releases status | Show release status across tracks |
releases promote | Promote a release between tracks |
releases rollout increase | Increase staged rollout percentage |
releases rollout halt | Halt a staged rollout |
releases rollout resume | Resume a halted rollout |
releases rollout complete | Complete a staged rollout to 100% |
releases notes set | Set release notes for a track |
releases diff | Compare releases between two tracks |
releases upload
Upload an AAB or APK file and assign it to a track. Creates an edit, uploads the bundle, assigns the track, and commits.
Synopsis
gpc releases upload <file> [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | internal | Target track (internal, alpha, beta, production, or custom) | |
--rollout | number | Staged rollout percentage (1-100) | ||
--notes | string | Release notes text (en-US) | ||
--name | string | Release name | ||
--mapping | string | Path to ProGuard/R8 mapping file for deobfuscation | ||
--notes-dir | string | Directory with per-language release notes (<dir>/<lang>.txt) | ||
--retry-log | string | Write retry log entries to file (JSONL) |
Example
Upload to internal track:
gpc releases upload app-release.aab --app com.example.myappUpload to production with 10% staged rollout:
gpc releases upload app-release.aab \
--app com.example.myapp \
--track production \
--rollout 10 \
--notes "Bug fixes and performance improvements"Upload with deobfuscation mapping:
gpc releases upload app-release.aab \
--app com.example.myapp \
--track beta \
--mapping app/build/outputs/mapping/release/mapping.txtUpload with multi-language notes:
gpc releases upload app-release.aab \
--app com.example.myapp \
--track beta \
--notes-dir ./release-notes/releases status
Show current release status across all tracks or a specific track.
Synopsis
gpc releases status [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | Filter by a specific track |
Example
Show all tracks:
gpc releases status --app com.example.myappShow a single track:
gpc releases status --app com.example.myapp --track production{
"tracks": [
{
"track": "production",
"releases": [
{
"name": "42",
"status": "inProgress",
"userFraction": 0.1,
"versionCodes": ["42"]
}
]
}
]
}releases promote
Promote a release from one track to another. Copies the latest release from the source track to the target track.
Synopsis
gpc releases promote --from <track> --to <track> [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--from | string | (required) | Source track | |
--to | string | (required) | Target track | |
--rollout | number | Staged rollout percentage (1-100) for the target track | ||
--notes | string | Release notes text (en-US) |
Example
Promote from internal to beta:
gpc releases promote \
--app com.example.myapp \
--from internal \
--to betaPromote from beta to production with staged rollout:
gpc releases promote \
--app com.example.myapp \
--from beta \
--to production \
--rollout 5 \
--notes "Promoting stable beta build"Preview the promotion without executing:
gpc releases promote --from internal --to beta --dry-runreleases rollout increase
Increase the staged rollout percentage for a release on a track.
Synopsis
gpc releases rollout increase --track <track> --to <percent>Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | (required) | Track name | |
--to | number | (required) | New rollout percentage (1-100) |
Example
gpc releases rollout increase \
--app com.example.myapp \
--track production \
--to 50releases rollout halt
Halt a staged rollout. No new users will receive the release.
Synopsis
gpc releases rollout halt --track <track>Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | (required) | Track name |
Example
gpc releases rollout halt \
--app com.example.myapp \
--track productionreleases rollout resume
Resume a previously halted staged rollout.
Synopsis
gpc releases rollout resume --track <track>Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | (required) | Track name |
Example
gpc releases rollout resume \
--app com.example.myapp \
--track productionreleases rollout complete
Complete a staged rollout, pushing the release to 100% of users.
Synopsis
gpc releases rollout complete --track <track>Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | (required) | Track name |
Example
gpc releases rollout complete \
--app com.example.myapp \
--track productionreleases notes set
Set release notes for an existing release on a track.
Synopsis
gpc releases notes set --track <track> [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--track | string | (required) | Track name | |
--lang | string | en-US | Language code (BCP 47) | |
--notes | string | Release notes text | ||
--file | string | Read notes from a file |
Example
Set notes inline:
gpc releases notes set \
--app com.example.myapp \
--track beta \
--lang en-US \
--notes "Bug fixes and performance improvements"Set notes from a file:
gpc releases notes set \
--app com.example.myapp \
--track beta \
--lang ja-JP \
--file release-notes/ja-JP.txtreleases diff
Compare releases between two tracks (e.g., internal vs production). Shows differences in version codes, status, rollout percentage, release notes, and release name.
Synopsis
gpc releases diff [options]Options
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--from | string | internal | Source track | |
--to | string | production | Target track |
Example
Compare internal and production tracks:
gpc releases diff --app com.example.myappCompare specific tracks:
gpc releases diff \
--app com.example.myapp \
--from beta \
--to productionComparing releases: beta → production
versionCodes: 142 → 140
status: completed → inProgress
userFraction: (none) → 0.5Use --output json for structured diff output. Returns "No differences found" when tracks have identical latest releases.
Related
- publish -- High-level one-command workflow
- listings -- Store listing management
- CI/CD Integration -- Automated release pipelines