Skip to content

ci(mobile): tag-only SemVer pipeline → Play internal, no GitHub releases#22

Merged
aneebbaig merged 1 commit into
mainfrom
ci/play-aab
Jul 12, 2026
Merged

ci(mobile): tag-only SemVer pipeline → Play internal, no GitHub releases#22
aneebbaig merged 1 commit into
mainfrom
ci/play-aab

Conversation

@aneebbaig

@aneebbaig aneebbaig commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Summary

Replace the tag-triggered APK→GitHub-Release flow with a Conventional-Commits SemVer pipeline that deploys to Google Play internal testing and never creates a GitHub Release.

Pipeline (.github/workflows/mobile-release.yml)

  • Push to main touching apps/mobile/** → analyse commits since last tag → bump SemVer (feat→minor, fix→patch, BREAKING→major) → push vX.Y.Z tag → build signed AAB → deploy to Play internal. No feat/fix ⇒ no release.
  • Single AAB build (all ABIs; Play splits per-device). APK dropped (≈halves CI).
  • Tag + build in one workflow → avoids the GITHUB_TOKEN-tag-doesn't-trigger-downstream trap (no PAT).
  • workflow_dispatch builds the current pubspec version on demand → mints the first v1.0.0 bootstrap AAB.
  • AAB is a workflow artifact only, never a GitHub Release. permissions: contents: write (only to push tags/version).
  • Play deploy via r0adkll/upload-google-play, gated on PLAY_SERVICE_ACCOUNT_JSON so builds pass pre-bootstrap.
  • Branding guard reads the launcher label from the AAB via bundletool.

Versioning reset

  • All old releases + tags deleted. Fresh start at 1.0.0+1.

One-time manual bootstrap (Play side, only you can do)

  1. Play Console → create app com.anhib.align, set up Internal testing track, add yourself as tester.
  2. Download the v1.0.0 AAB artifact (from a workflow_dispatch run) and upload it manually (enrolls Play App Signing).
  3. Play Console → API access → create a service account, grant release perms, save its JSON as repo secret PLAY_SERVICE_ACCOUNT_JSON.
  4. After that, every feat/fix merged to main auto-bumps, builds, and deploys to Play.

🤖 Generated with Claude Code

@vercel

vercel Bot commented Jul 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
align Ignored Ignored Preview Jul 12, 2026 10:12am

@aneebbaig aneebbaig changed the title ci(mobile): AAB-only release build for Play internal testing ci(mobile): AAB-only, no GitHub Release, auto-deploy to Play internal Jul 12, 2026
@aneebbaig aneebbaig changed the title ci(mobile): AAB-only, no GitHub Release, auto-deploy to Play internal ci(mobile): tag-only SemVer pipeline → Play internal, no GitHub releases Jul 12, 2026
Rework mobile delivery for Google Play internal testing, no GitHub
Releases:
- On push to main touching apps/mobile, analyse Conventional Commits
  since the last tag, bump SemVer (feat→minor, fix→patch, BREAKING→
  major), push a vX.Y.Z tag, build a signed AAB, deploy to the Play
  internal track (r0adkll/upload-google-play, gated on the
  PLAY_SERVICE_ACCOUNT_JSON secret). No feat/fix ⇒ no release.
- Single AAB build (all ABIs; Play splits per-device); dropped the APK.
- Tagging + build live in one workflow so the GITHUB_TOKEN-tag-doesn't-
  trigger-a-second-workflow trap is avoided (no PAT needed).
- workflow_dispatch builds the current pubspec version on demand — used
  to mint the first v1.0.0 bootstrap AAB before Play auto-deploy exists.
- AAB is a workflow artifact only, never a GitHub Release.
- Branding guard reads the label from the AAB via bundletool.

chore(mobile): reset version to 1.0.0+1 (fresh SemVer start)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015zEH6N4TpnwYyXhX4gSjrV
@aneebbaig aneebbaig merged commit ff4e4be into main Jul 12, 2026
4 checks passed
aneebbaig added a commit that referenced this pull request Jul 12, 2026
ci(mobile): tag-only SemVer pipeline → Play internal, no GitHub releases
@aneebbaig aneebbaig deleted the ci/play-aab branch July 12, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant