Repository navigation
chore(release): align Android Play publishing after FGS declaration #6848
Description
Context
This is the repo follow-up to #6847 and #6841.
Do not start or merge this until #6847 is complete. The Play Console Foreground service permissions declaration must be on file first; otherwise changing Codemagic away from draft uploads can make Android publishing fail at the Play rollout step again.
Problem
codemagic.yaml currently uploads Android builds to the Play production track as drafts:
publishing:
google_play:
credentials: $GCLOUD_SERVICE_ACCOUNT_CREDENTIALS
track: production
submit_as_draft: trueThat was a valid unblock while Play rejected rollouts without the one-time Foreground service permissions declaration. After #6847 is done, keeping submit_as_draft: true becomes a release trap: Codemagic can go green, the artifact can upload, and no Play user receives the update unless someone remembers to manually promote the draft.
The release checklist also still documents the older manual helper path and does not make the Codemagic draft/promotion gate explicit.
Required Repo Work
-
Confirm chore(release): complete Play foreground service declaration #6847 is complete before making or merging this change.
-
Decide and document the intended post-declaration Android release behavior.
Recommended behavior:
- Publish Codemagic Android builds to the Play
internaltrack withoutsubmit_as_draft. - Keep production rollout as an intentional Play Console promotion step.
- This keeps CI artifacts installable by testers and avoids silent production drafts.
Alternative acceptable behavior, if the team explicitly wants CI to publish production directly:
- Remove
submit_as_draft: true. - Keep
track: production. - Prefer a staged
rollout_fractionif production publishing should not immediately reach 100% of users. Codemagic supportsrollout_fraction, and it cannot be combined withsubmit_as_draft.
- Publish Codemagic Android builds to the Play
-
Update
codemagic.yamlaccordingly. -
Update or remove the stale comment above
submit_as_draft: true; it must not describe a Play Console blocker that is already resolved. -
Refresh
docs/RELEASE_CHECKLIST.mdsection 6 so Android release steps match the real Codemagic path and explicitly mention any required Play Console promotion/release-track verification. -
Review
mobile/deploy_android.sh. It currently has a production lane that uploads directly to production. Either align its documented semantics with the chosen release behavior or remove/de-emphasize it from the checklist if Codemagic is the real release path.
Acceptance Criteria
- chore(release): complete Play foreground service declaration #6847 is complete before this issue is implemented or merged.
-
codemagic.yamlno longer silently uploads production releases as drafts after the Play declaration is complete. - The stale foreground-service blocker comment in
codemagic.yamlis removed or replaced with current release guidance. -
docs/RELEASE_CHECKLIST.mdsection 6 describes the current Android release path, including Play track and promotion expectations. -
mobile/deploy_android.shis either aligned with the chosen behavior or no longer presented as the primary production release path. - No Dart, l10n, or golden changes are included unless the implementation unexpectedly touches app behavior.
Verification
- Validate
codemagic.yamlstill parses as YAML. - Review the resulting diff for docs/config-only scope.
- No Flutter tests are required for a docs/config-only change.
Blocked By
Blocked by #6847. The Google Play declaration and draft promotion must happen first.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTesting
Activity
dcadenas commentedon Aug 8, 2026
Unblocking this, and correcting the premise it was written on.
The Play Console foreground service declaration was already completed on Jul 11, 2026, four weeks before this issue was filed. So the "do not start until #6847 is complete" gate is already satisfied, and #6847 is closed.
Two corrections to the issue body:
The work itself still stands.
submit_as_draft: trueatcodemagic.yaml:608is a real trap: the build goes green, the artifact uploads, and nothing reaches users unless someone remembers to act in the console. The stale comment above it describes a blocker that was resolved on Jul 11 and should go. The release checklist andmobile/deploy_android.share still out of step with the actual Codemagic path.The recommended behavior in the body (publish to
internalwithoutsubmit_as_draft, keep production rollout an intentional Play Console step) still looks right to me, with one addition from what we just hit: if production rollouts stay staged, something needs to surface a rollout that has stopped part way. A release sitting at 20% for two weeks produced no signal anywhere.