gowalk-cicd 1.0.20 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/action/.daemux-version +1 -1
- package/android-action/.daemux-version +1 -1
- package/package.json +1 -1
- package/templates/deploy.yml +23 -0
package/README.md
CHANGED
|
@@ -103,6 +103,26 @@ in Play Console; every later run detects API readiness and uploads to the
|
|
|
103
103
|
`internal` track automatically. Override the track or status with repository
|
|
104
104
|
variables `GOOGLE_PLAY_TRACK` and `GOOGLE_PLAY_STATUS`.
|
|
105
105
|
|
|
106
|
+
### Google Play upload retry
|
|
107
|
+
|
|
108
|
+
A Play edit is a short-lived server-side object, and an AAB upload that runs
|
|
109
|
+
long enough outlives one:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
##[error]This edit has expired, please create a new Edit.
|
|
113
|
+
##[error]This Edit has been deleted.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Neither says anything about the build, which is signed and retained by that
|
|
117
|
+
point. The upload step therefore runs with `continue-on-error` and a second
|
|
118
|
+
attempt follows when the first fails — a fresh edit succeeds. Both attempts
|
|
119
|
+
failing still fails the job.
|
|
120
|
+
|
|
121
|
+
One caveat this makes explicit: **nothing else should hold an edit open on the
|
|
122
|
+
same package while a deploy runs.** A script that polls `edits.insert` /
|
|
123
|
+
`edits.delete` to inspect track state will invalidate the edit the upload is
|
|
124
|
+
using, and the deploy fails for a reason that has nothing to do with the app.
|
|
125
|
+
|
|
106
126
|
### Runner disk space
|
|
107
127
|
|
|
108
128
|
An `ubuntu-24.04` runner leaves roughly 14 GB free on `/`, and a release Flutter
|
package/action/.daemux-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.21
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.21
|
package/package.json
CHANGED
package/templates/deploy.yml
CHANGED
|
@@ -226,7 +226,18 @@ jobs:
|
|
|
226
226
|
python3 .github/actions/android-app/scripts/play_preflight.py \
|
|
227
227
|
--package "$PACKAGE_NAME" \
|
|
228
228
|
--service-account "$SERVICE_ACCOUNT"
|
|
229
|
+
# Play edits are short-lived server-side objects, and an AAB upload that runs
|
|
230
|
+
# long — a 100-200 MB bundle, a slow runner, or anything else holding an edit
|
|
231
|
+
# open on the same package — outlives one. The failures read as
|
|
232
|
+
# "This edit has expired, please create a new Edit." or "This Edit has been
|
|
233
|
+
# deleted." Neither says anything about the build, which is already signed and
|
|
234
|
+
# retained by this point; a second attempt opens a fresh edit and succeeds.
|
|
235
|
+
# Note this also means nothing else should be creating edits against these
|
|
236
|
+
# packages while a deploy runs — an external poller that opens and deletes an
|
|
237
|
+
# edit will invalidate the one this step is holding.
|
|
229
238
|
- name: Upload Android release to Google Play
|
|
239
|
+
id: play-upload
|
|
240
|
+
continue-on-error: true
|
|
230
241
|
if: ${{ steps.mode.outputs.mode == 'local' && steps.play.outputs.ready == 'true' }}
|
|
231
242
|
uses: r0adkll/upload-google-play@e738b9dd8f2476ea806d921b64aacd24f34515a5 # v1.1.5
|
|
232
243
|
with:
|
|
@@ -243,3 +254,15 @@ jobs:
|
|
|
243
254
|
# files (e.g. whatsnew-en-US, whatsnew-de-DE) and they ship with every
|
|
244
255
|
# release. Empty when the directory is absent — the action skips it.
|
|
245
256
|
whatsNewDirectory: ${{ hashFiles('distribution/whatsnew/**') != '' && 'distribution/whatsnew' || '' }}
|
|
257
|
+
|
|
258
|
+
- name: Retry Google Play upload
|
|
259
|
+
if: ${{ steps.mode.outputs.mode == 'local' && steps.play.outputs.ready == 'true' && steps.play-upload.outcome == 'failure' }}
|
|
260
|
+
uses: r0adkll/upload-google-play@e738b9dd8f2476ea806d921b64aacd24f34515a5 # v1.1.5
|
|
261
|
+
with:
|
|
262
|
+
serviceAccountJson: ${{ steps.android.outputs.play-service-account }}
|
|
263
|
+
packageName: ${{ steps.android.outputs.package-name }}
|
|
264
|
+
releaseFiles: ${{ steps.android.outputs.bundle-path }}
|
|
265
|
+
tracks: ${{ vars.GOOGLE_PLAY_TRACK || 'internal' }}
|
|
266
|
+
status: ${{ vars.GOOGLE_PLAY_STATUS || 'completed' }}
|
|
267
|
+
userFraction: ${{ vars.GOOGLE_PLAY_STATUS == 'inProgress' && (vars.GOOGLE_PLAY_USER_FRACTION || '0.2') || '' }}
|
|
268
|
+
whatsNewDirectory: ${{ hashFiles('distribution/whatsnew/**') != '' && 'distribution/whatsnew' || '' }}
|