ci(android): replace r0adkll with a direct Play Publishing-API upload
r0adkll/upload-google-play hides real API errors behind "Unknown error occurred." Proved the full upload sequence (insert edit -> upload bundle -> track update -> validate) succeeds with the service account, so the failure was r0adkll's opaque error handling and/or a base64-encoded SERVICE_ACCOUNT_JSON secret. clients/android/ci/play-upload.py does the same sequence with stdlib + openssl (no pip), reuses the SERVICE_ACCOUNT_JSON secret, tolerates it being raw JSON or base64, auto-retries commit with changesNotSentForReview, and prints Google's actual error. Locally dry-run-validated against the live app (both secret forms). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -103,12 +103,15 @@ jobs:
|
||||
echo " $base/punktfunk-android-r$VERSION.aab"
|
||||
echo " $base/punktfunk-android-r$VERSION.apk"
|
||||
|
||||
# Direct Publishing-API upload instead of r0adkll/upload-google-play — that action hides the
|
||||
# real API error behind "Unknown error occurred."; this prints it. stdlib + openssl only (no
|
||||
# pip), reuses SERVICE_ACCOUNT_JSON (raw JSON or base64), auto-handles changesNotSentForReview.
|
||||
- name: Upload to Google Play (Internal Testing)
|
||||
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||
uses: r0adkll/upload-google-play@v1
|
||||
with:
|
||||
serviceAccountJsonKeyData: ${{ secrets.SERVICE_ACCOUNT_JSON }}
|
||||
packageName: io.unom.punktfunk
|
||||
releaseFiles: clients/android/app/build/outputs/bundle/release/app-release.aab
|
||||
track: internal
|
||||
status: completed
|
||||
env:
|
||||
SERVICE_ACCOUNT_JSON: ${{ secrets.SERVICE_ACCOUNT_JSON }}
|
||||
run: |
|
||||
python3 clients/android/ci/play-upload.py \
|
||||
--package io.unom.punktfunk \
|
||||
--aab clients/android/app/build/outputs/bundle/release/app-release.aab \
|
||||
--track internal --status completed
|
||||
|
||||
Reference in New Issue
Block a user