Skip to content

ci(play): upload signed AAB artifact for manual first upload#148

Merged
krazyjakee merged 2 commits into
masterfrom
ci/play-aab-artifact
Jun 15, 2026
Merged

ci(play): upload signed AAB artifact for manual first upload#148
krazyjakee merged 2 commits into
masterfrom
ci/play-aab-artifact

Conversation

@krazyjakee

Copy link
Copy Markdown
Contributor

Why

The Google Play deploy job builds a valid signed AAB but the upload fails repeatedly with:

Google Api Error: Server error - Internal error encountered.

Two consecutive runs failed identically, the second failing even earlier (during "Preparing aab"). This is the well-known symptom of a brand-new Play app with no first release — the Play Developer API rejects uploads with an opaque 500 until the app's first release is created manually in the Console.

Change

  • Save the signed AAB as a workflow artifact (daccord-playstore-aab, if: always()) so we can grab the exact signed bundle and do the one-time manual upload via the Play Console. API deploys work after that.
  • Guard the _SILENCE_EXPERIMENTAL_COROUTINE_DEPRECATION_WARNINGS define (from fix(windows): silence experimental/coroutine deprecation (STL1011) #147) behind if(MSVC).

🤖 Generated with Claude Code

krazyjakee and others added 2 commits June 15, 2026 14:12
The Google Play deploy keeps failing with an opaque "Google Api Error:
Server error - Internal error encountered" — the known symptom of a
brand-new Play app that has no first release yet (the Play Developer API
rejects uploads until the first release is created manually in the Console).

Save the signed AAB as a workflow artifact (if: always()) so the first
release can be uploaded by hand; subsequent API deploys then work.

Also guard the experimental/coroutine STL1011 define behind if(MSVC).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Set retention-days: 30 on the AAB artifact upload — the one-time
  manual-upload artifact only needs to persist until the first Play
  Console release is created; 90-day default wastes artifact quota.
- Replace `if: always()` with `if: success() || failure()` so the
  step is skipped on workflow cancellation (always() fires on cancel
  too, producing a spurious warning about a missing AAB).

https://claude.ai/code/session_012fCcD4T32mCWzkTgJxVMeR

Copy link
Copy Markdown
Contributor Author

Code Review — findings & fixes (ranked by severity)

Medium — Commit message / PR description are inaccurate

The commit message ("guard MSVC coroutine define") and the PR description ("Guard the _SILENCE_EXPERIMENTAL_COROUTINE_DEPRECATION_WARNINGS define behind if(MSVC)") both claim that change is in this PR. It is notwindows/CMakeLists.txt is unchanged here. The if(MSVC) guard was already applied in the second squash commit of PR #147 (62f45b148f5). No code fix possible for an already-pushed commit message, but noting it to avoid confusion during future blame/history reads.

Low — retention-days missing; defaults to 90 days (wasteful for a one-time artifact)

The AAB is only needed until the first manual Play Console release is created — after that, subsequent deploys go via the API and the artifact serves no purpose. Defaulting to 90 days accumulates unnecessary storage against the Actions quota.

Fixed: added retention-days: 30.

Negligible — if: always() fires on workflow cancellation

if: always() includes the cancelled state, which triggers the artifact upload step even when a developer cancels the run mid-build. With if-no-files-found: warn the impact is just a spurious warning, but if: success() || failure() is semantically correct and matches the documented intent.

Fixed: replaced if: always() with if: success() || failure().


Both fixes applied in commit c482418 on this branch.


Generated by Claude Code

@krazyjakee krazyjakee merged commit 1862cfa into master Jun 15, 2026
3 checks passed
@krazyjakee krazyjakee deleted the ci/play-aab-artifact branch June 15, 2026 14:52
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.

2 participants