diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 46fe5fc..b250ba6 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -551,12 +551,11 @@ jobs: env: VERSION: ${{ needs.detect.outputs.version }} VERSION_CODE: ${{ needs.detect.outputs.version_code }} - # Where the bundle lands. `internal` by default so a release reaches - # testers rather than the public, and promotion to production stays a - # deliberate human action in the Play Console — the same posture as - # holding UI releases for on-device review. Override with the PLAY_TRACK - # repo variable once the flow is trusted. - PLAY_TRACK: ${{ vars.PLAY_TRACK || 'internal' }} + # Where the bundle lands. `production` — the release itself is already the + # gate (a bumped versionName only reaches main after on-device review), so + # a second manual promotion in the Play Console bought nothing but delay. + # Override with the PLAY_TRACK repo variable to stage a release instead. + PLAY_TRACK: ${{ vars.PLAY_TRACK || 'production' }} PLAY_RELEASE_STATUS: ${{ vars.PLAY_RELEASE_STATUS || 'completed' }} # Set PLAY_DRY_RUN=true to validate the edit against the API and discard # it instead of committing — used to rehearse the first upload. diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 19537f7..ebb5874 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -172,9 +172,12 @@ F-Droid but not Play: Until those are fixed, Play's graphics are managed by hand in the console. Then pass `images:true` to the `listing` lane. -**Track.** Uploads go to `internal` by default; promotion to production stays a -manual action in the Play Console, matching the rule that UI releases wait for -on-device review. Override with the `PLAY_TRACK` repo variable. +**Track.** Uploads go straight to `production` at a full rollout +(`PLAY_RELEASE_STATUS=completed`). The merge to `main` is already the human +gate — a release only gets there after on-device review — so a second manual +promotion in the Play Console added delay without adding a decision. Set the +`PLAY_TRACK` repo variable (e.g. `internal`) to stage a release instead, or +`PLAY_RELEASE_STATUS=draft` to hold it unpublished. ### Manual re-sign / recovery @@ -233,7 +236,7 @@ Two consequences worth remembering: | Variable | Default | Purpose | | --- | --- | --- | -| `PLAY_TRACK` | `internal` | Play track the bundle is uploaded to. | +| `PLAY_TRACK` | `production` | Play track the bundle is uploaded to. Set to `internal`/`alpha`/`beta` to stage instead. | | `PLAY_RELEASE_STATUS` | `completed` | `completed`, `draft`, `inProgress` or `halted`. | | `PLAY_DRY_RUN` | `false` | `true` validates the Play edit against the API and discards it — use to rehearse. | diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 459651d..afdde8a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -29,7 +29,7 @@ platform :android do supply( aab: aab, - track: options[:track] || "internal", + track: options[:track] || "production", release_status: options[:release_status] || "completed", # The APK belongs to F-Droid and the Codeberg download; Play only ever