Skip to content

ci: bump GH Actions to Node 24 runtimes - #23

Merged
Azyyyyyy merged 1 commit into
mainfrom
ci-bump-node20-actions
Jul 30, 2026
Merged

ci: bump GH Actions to Node 24 runtimes#23
Azyyyyyy merged 1 commit into
mainfrom
ci-bump-node20-actions

Conversation

@Azyyyyyy

@Azyyyyyy Azyyyyyy commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Clears the Node.js 20 is deprecated warning that fires at the top of every job in run 30537101455 and run 30537104274. GitHub started force-shimming Node-20 actions onto Node 24 after the 2025-09-19 deprecation; each action below has a newer major that ships runs.using: node24 natively, so the shim message goes away for good.

Bumps

Every action is bumped to the highest published major that actually flips runs.using: node24, apart from gradle/actions/setup-gradle which is deliberately held at v5 (v6 relicensed the caching component to Gradle's Terms of Use).

Action From To Rationale
actions/checkout v4 v7 v5 flipped to Node 24; v6 splits creds to a separate file (we don't touch creds); v7 blocks fork-PR checkout for pull_request_target / workflow_run (we don't use those triggers).
actions/setup-java v4 v5 v5 is the current latest major.
actions/cache v4 v6 v5 flipped to Node 24; v6 is an ESM refactor with no config change.
actions/upload-artifact v4 v7 v5 was a false floor + ' — it added preliminary Node 24 support in-code but the action.yml still declared runs.using: node20. v6 flipped the default to node24; v7 adds an opt-in archive: false for single files that we don't use.
actions/download-artifact v4 v8 Same story: v5/v6 preliminary; v7 flipped the runtime default; v8 is ESM + stricter hash-mismatch defaults + direct-download support. Applies only to name:-keyed downloads (what we use), so the v5 single-artifact-by-ID path fix is inapplicable.
gradle/actions/setup-gradle v4 v5 v5 is Node 24. v6 intentionally skipped + ' — it moves the caching component into a closed-source gradle-actions-caching library and using it implicitly accepts Gradle's Terms of Use per the v6 blog post.
softprops/action-gh-release v2 v3 v3 moves runtime to Node 24; v2 is now a Node 20-only line.

Unchanged

  • actions/attest-build-provenance@v4 — the v4 line already ships on Node 24.
  • reactivecircus/android-emulator-runner@v2 and docker/* — never in the deprecation warning.

Verification

  • ✅ Build WASM Docker Image run 30542887308: all three Kotlin jobs green, zero annotations across every check-run (was one per job before).
  • 🟡 Mobile Release dry-run run 30542900472 triggered via workflow_dispatch on this branch (publish: false) to confirm the macos-26 iOS job and Android job come out clean too.

GitHub deprecated the Node 20 runtime on 2025-09-19; runners have been
force-shimming Node 20 actions onto Node 24, emitting the "Node.js 20 is
deprecated" warning at the top of every job. Bumps target the highest
major of each action that actually flips `runs.using: node24` (v5 was
a false floor for upload/download-artifact — those v5 releases still
declared `runs.using: node20` and only added preliminary Node 24
support in-code).

  actions/checkout                 v4 -> v7
  actions/setup-java               v4 -> v5   (already latest major)
  actions/cache                    v4 -> v6
  actions/upload-artifact          v4 -> v7   (v5/v6 were preliminary;
                                              v6 flipped the default
                                              runtime, v7 adds opt-in
                                              `archive: false`)
  actions/download-artifact        v4 -> v8   (v5/v6 preliminary; v7
                                              flipped the default
                                              runtime, v8 is ESM +
                                              stricter hash-mismatch
                                              defaults, applied only to
                                              `name:`-keyed downloads
                                              which is what we use)
  gradle/actions/setup-gradle      v4 -> v5   (pinned; v6 relicensed
                                              the caching component to
                                              Gradle Terms of Use)
  softprops/action-gh-release      v2 -> v3

Unchanged: actions/attest-build-provenance@v4   already ships on Node 24
  reactivecircus/android-emulator-runner@v2, docker/*   not in the warning
Co-authored-by: Cursor <cursoragent@cursor.com>
@Azyyyyyy
Azyyyyyy force-pushed the ci-bump-node20-actions branch from ef24609 to a162ffc Compare July 30, 2026 12:31
@Azyyyyyy
Azyyyyyy merged commit f3a0b91 into main Jul 30, 2026
5 of 7 checks passed
@Azyyyyyy
Azyyyyyy deleted the ci-bump-node20-actions branch July 30, 2026 12:41
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.

1 participant