gowalk-cicd 1.0.34 → 1.0.35

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 CHANGED
@@ -184,11 +184,11 @@ sent for review from the Google Play Console UI.
184
184
  ```
185
185
 
186
186
  That fails the whole upload, so the bundle you just built never reaches Play at
187
- all. The retry re-uploads with `changesNotSentForReview`, which lands the bundle
188
- and leaves it waiting, then emits a `::warning::` naming the package. Someone
189
- then presses **Send changes for review** on that app's Publishing overview page.
190
- There is no API for that press it is the one step Google deliberately reserves
191
- for a human, and no amount of tooling removes it.
187
+ all. After an ordinary fresh-edit retry, the final retry re-uploads with
188
+ `changesNotSentForReview`, which lands the bundle and leaves it waiting, then
189
+ emits a `::warning::` naming the package. The delivery system can then complete
190
+ the console-only **Send changes for review** action through the app's leased
191
+ AdsPower profile.
192
192
 
193
193
  In the ordinary case the first upload submits normally and the retry is skipped.
194
194
 
@@ -204,8 +204,10 @@ long enough outlives one:
204
204
 
205
205
  Neither says anything about the build, which is signed and retained by that
206
206
  point. The upload step therefore runs with `continue-on-error` and a second
207
- attempt follows when the first fails a fresh edit succeeds. Both attempts
208
- failing still fails the job.
207
+ ordinary attempt follows when the first fails. This preserves automatic review
208
+ submission while opening a fresh edit. Only when that retry also fails does a
209
+ third attempt use `changesNotSentForReview`; setting that flag on an ordinary
210
+ app is itself a Play validation error.
209
211
 
210
212
  One caveat this makes explicit: **nothing else should hold an edit open on the
211
213
  same package while a deploy runs.** A script that polls `edits.insert` /
@@ -1 +1 @@
1
- 1.0.34
1
+ 1.0.35
@@ -1 +1 @@
1
- 1.0.34
1
+ 1.0.35
@@ -1 +1 @@
1
- 1.0.34
1
+ 1.0.35
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gowalk-cicd",
3
- "version": "1.0.34",
3
+ "version": "1.0.35",
4
4
  "description": "Zero-config GitHub Actions delivery for iOS TestFlight and Android Google Play.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -363,20 +363,40 @@ jobs:
363
363
  ${{ vars.GOOGLE_PLAY_STATUS == 'inProgress' && (vars.GOOGLE_PLAY_USER_FRACTION || '0.2') || '' }}
364
364
  whatsNewDirectory: ${{ hashFiles('distribution/whatsnew/**') != '' && 'distribution/whatsnew' || '' }}
365
365
 
366
- # The retry serves two different failures, and both need a fresh edit:
367
- # * the edit expired mid-upload (a large bundle on a slow runner), and
368
- # * Play refused to auto-submit: "Changes cannot be sent for review
369
- # automatically. Please set changesNotSentForReview to true." Play returns
370
- # this once an app has changes a human must submit — after a policy
371
- # rejection, for instance — and it fails the whole upload, so the built
372
- # bundle never lands at all.
373
- - name: Retry Google Play upload without auto-submit
374
- id: play-upload-retry
366
+ # A failed action does not expose a machine-readable Play error code. Retry once
367
+ # with the ordinary review mode first: that opens a fresh edit and repairs an edit
368
+ # that expired during a slow upload without changing submission semantics.
369
+ - name: Retry Google Play upload with a fresh edit
370
+ id: play-upload-fresh-retry
371
+ continue-on-error: true
375
372
  if: >-
376
373
  ${{ steps.mode.outputs.mode == 'local'
377
374
  && steps.play.outputs.ready == 'true'
378
375
  && steps.play-upload.outcome == 'failure' }}
379
376
  uses: r0adkll/upload-google-play@e738b9dd8f2476ea806d921b64aacd24f34515a5 # v1.1.5
377
+ with:
378
+ serviceAccountJson: ${{ steps.android.outputs.play-service-account }}
379
+ packageName: ${{ steps.android.outputs.package-name }}
380
+ releaseFiles: ${{ steps.android.outputs.bundle-path }}
381
+ tracks: ${{ vars.GOOGLE_PLAY_TRACK || 'internal' }}
382
+ status: ${{ vars.GOOGLE_PLAY_STATUS || 'completed' }}
383
+ userFraction: >-
384
+ ${{ vars.GOOGLE_PLAY_STATUS == 'inProgress' && (vars.GOOGLE_PLAY_USER_FRACTION || '0.2') || '' }}
385
+ whatsNewDirectory: >-
386
+ ${{ hashFiles('distribution/whatsnew/**') != '' && 'distribution/whatsnew' || '' }}
387
+
388
+ # If the ordinary fresh-edit retry also fails, Play may be requiring the
389
+ # changesNotSentForReview mode used after a policy rejection. A third, fresh edit
390
+ # is intentionally reserved for that case. Setting the flag on the edit-expiry
391
+ # retry is invalid for apps whose changes are submitted automatically.
392
+ - name: Retry Google Play upload without auto-submit
393
+ id: play-upload-review-retry
394
+ if: >-
395
+ ${{ steps.mode.outputs.mode == 'local'
396
+ && steps.play.outputs.ready == 'true'
397
+ && steps.play-upload.outcome == 'failure'
398
+ && steps.play-upload-fresh-retry.outcome == 'failure' }}
399
+ uses: r0adkll/upload-google-play@e738b9dd8f2476ea806d921b64aacd24f34515a5 # v1.1.5
380
400
  with:
381
401
  serviceAccountJson: ${{ steps.android.outputs.play-service-account }}
382
402
  packageName: ${{ steps.android.outputs.package-name }}
@@ -390,7 +410,7 @@ jobs:
390
410
  changesNotSentForReview: true
391
411
 
392
412
  - name: Say what still needs a human
393
- if: ${{ always() && steps.play-upload-retry.outcome == 'success' }}
413
+ if: ${{ always() && steps.play-upload-review-retry.outcome == 'success' }}
394
414
  shell: bash
395
415
  run: |
396
416
  echo "::warning::Play would not accept this release for review automatically, so it was \