gowalk-cicd 1.0.81 → 1.0.82

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/CLAUDE.md CHANGED
@@ -158,6 +158,10 @@ node /path/to/gowalk-cicd/bin/cli.mjs
158
158
  errors still fail the job. Never use `continue-on-error` or a timeout around all SDK setup
159
159
  to hide an optional cache failure. Do not alter cache keys or disable caches as part of
160
160
  this timeout handling.
161
+ - Gradle caches use explicit checksum-pinned restore/save actions, each optional and bounded
162
+ to two minutes. Preserve setup-java's key inputs and absolute cache paths to reuse existing
163
+ caches. Java setup, builds and store uploads remain mandatory; save runs after delivery.
164
+ The cache-only preloader also admits the pinned `restore-only`/`save-only` entrypoints.
161
165
  - GitHub artifact uploads have their own checksum-pinned `artifact_env.cjs` process scope.
162
166
  It reuses the cache transport's approved HTTPS request guard, then removes inherited proxy
163
167
  variables only inside the official `upload-artifact` process. Unknown programs/origins refuse;
@@ -1 +1 @@
1
- 1.0.81
1
+ 1.0.82
@@ -5,6 +5,8 @@ const {basename, dirname, join} = require('node:path');
5
5
  const hashes = new Map([
6
6
  ['restore', 'a49301428b4c5477522c00f6464566457ed327d64ae5f80f8c12e762fb2ea9a2'],
7
7
  ['save', 'b969065795aaf5c6d20ba158e910be5d353eefb02eb2785263eb32e13090c066'],
8
+ ['restore-only', '6255afaa3956351b8cfefc1e82f026b4db418a10678a8eaddf3d6c55f81744de'],
9
+ ['save-only', '7fb63f90f06ce6a10f39d40a113f99791bffdedad5394cdad5b4dfaa644559cb'],
8
10
  ]);
9
11
  const artifactHash = '168c44946cba03564808c19b83a72601e6d1d6f57081dbd2d6e2ea1cedc522f5';
10
12
  const proxyKeys = ['HTTP_PROXY', 'HTTPS_PROXY', 'http_proxy', 'https_proxy', 'ALL_PROXY', 'all_proxy'];
@@ -1 +1 @@
1
- 1.0.81
1
+ 1.0.82
@@ -5,6 +5,8 @@ const {basename, dirname, join} = require('node:path');
5
5
  const hashes = new Map([
6
6
  ['restore', 'a49301428b4c5477522c00f6464566457ed327d64ae5f80f8c12e762fb2ea9a2'],
7
7
  ['save', 'b969065795aaf5c6d20ba158e910be5d353eefb02eb2785263eb32e13090c066'],
8
+ ['restore-only', '6255afaa3956351b8cfefc1e82f026b4db418a10678a8eaddf3d6c55f81744de'],
9
+ ['save-only', '7fb63f90f06ce6a10f39d40a113f99791bffdedad5394cdad5b4dfaa644559cb'],
8
10
  ]);
9
11
  const artifactHash = '168c44946cba03564808c19b83a72601e6d1d6f57081dbd2d6e2ea1cedc522f5';
10
12
  const proxyKeys = ['HTTP_PROXY', 'HTTPS_PROXY', 'http_proxy', 'https_proxy', 'ALL_PROXY', 'all_proxy'];
@@ -1 +1 @@
1
- 1.0.81
1
+ 1.0.82
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gowalk-cicd",
3
- "version": "1.0.81",
3
+ "version": "1.0.82",
4
4
  "description": "Zero-config GitHub Actions delivery for iOS TestFlight and Android Google Play.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -348,7 +348,35 @@ jobs:
348
348
  with:
349
349
  distribution: temurin
350
350
  java-version: ${{ steps.jdk.outputs.version }}
351
- cache: gradle
351
+ # Keep Java setup mandatory; optional caches have no unbounded post step.
352
+ - name: Retain Gradle cache scope
353
+ id: gradle_scope
354
+ if: ${{ steps.mode.outputs.mode == 'local' }}
355
+ continue-on-error: true
356
+ shell: bash
357
+ run: |
358
+ node .github/actions/android-app/scripts/cache_scope.cjs --snapshot
359
+ node - <<'NODE'
360
+ require('fs').appendFileSync(process.env.GITHUB_OUTPUT,
361
+ `home=${require('os').homedir()}\narch=${process.arch}\n`);
362
+ NODE
363
+ - name: Restore Gradle dependencies
364
+ id: gradle_cache
365
+ if: ${{ steps.mode.outputs.mode == 'local' && steps.gradle_scope.outcome == 'success' }}
366
+ uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25
367
+ continue-on-error: true
368
+ timeout-minutes: 2
369
+ env:
370
+ NODE_OPTIONS: --require "${{ steps.gradle_scope.outputs.preloader }}"
371
+ SEGMENT_DOWNLOAD_TIMEOUT_MINS: '1'
372
+ with:
373
+ path: |
374
+ ${{ steps.gradle_scope.outputs.home }}/.gradle/caches
375
+ ${{ steps.gradle_scope.outputs.home }}/.gradle/wrapper
376
+ key: >-
377
+ ${{ format('setup-java-{0}-{1}-gradle-{2}', runner.os, steps.gradle_scope.outputs.arch,
378
+ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'buildSrc/**/Versions.kt',
379
+ 'buildSrc/**/Dependencies.kt', 'gradle/*.versions.toml', '**/versions.properties')) }}
352
380
  - name: Set up Flutter
353
381
  if: ${{ steps.mode.outputs.mode == 'local' && steps.flutter.outputs.enabled == 'true' }}
354
382
  uses: ./.github/actions/android-app/flutter-setup
@@ -518,6 +546,22 @@ jobs:
518
546
  run: |
519
547
  echo "::notice title=play_review_pending::{\"schema\":\"gowalk-cicd/play-review-pending.v1\",\"package\":\"${PACKAGE}\",\"track\":\"${TRACK}\",\"version_code\":\"${VERSION_CODE}\"}"
520
548
 
549
+ - name: Save Gradle dependencies
550
+ if: >-
551
+ ${{ success() && steps.mode.outputs.mode == 'local'
552
+ && steps.gradle_cache.outputs.cache-primary-key != ''
553
+ && steps.gradle_cache.outputs.cache-hit != 'true' }}
554
+ uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25
555
+ continue-on-error: true
556
+ timeout-minutes: 2
557
+ env:
558
+ NODE_OPTIONS: --require "${{ steps.gradle_scope.outputs.preloader }}"
559
+ with:
560
+ path: |
561
+ ${{ steps.gradle_scope.outputs.home }}/.gradle/caches
562
+ ${{ steps.gradle_scope.outputs.home }}/.gradle/wrapper
563
+ key: ${{ steps.gradle_cache.outputs.cache-primary-key }}
564
+
521
565
  # GitHub only registers a newly added workflow after it reaches the default
522
566
  # branch. A brand-new app's feature branch therefore cannot dispatch the
523
567
  # separate Backend Deploy workflow yet. Reuse this already-registered mobile