Skip to content

ci: replace deprecated Node 20 actions with controlled install steps#478

Merged
davidpoblador merged 1 commit into
mainfrom
ci/replace-node20-actions
May 29, 2026
Merged

ci: replace deprecated Node 20 actions with controlled install steps#478
davidpoblador merged 1 commit into
mainfrom
ci/replace-node20-actions

Conversation

@davidpoblador
Copy link
Copy Markdown
Member

Summary

Both xavierLowmiller/xcodegen-action@1.2.4 and mlugg/setup-zig@v2 still declare the Node 20 runtime even at their latest versions/main (verified against each action's action.yml). GitHub forces Node 20 actions to Node 24 on 2026-06-02 and removes Node 20 from runners on 2026-09-16. Neither has an upstream Node 24 release to bump to, so this replaces them with steps we control.

Changes

  • XcodeGenbrew install xcodegen (per ci: update GitHub Actions using deprecated Node.js 20 #151's suggested alternative)
  • Zig → pinned, checksum-verified download in a new local composite action .github/actions/install-zig, referenced from both workflows so the version + integrity check live in one place. The action resolves the published sha256 from ziglang.org/download/index.json and verifies the archive before adding it to PATH.
  • Removed the unused astral-sh/setup-uv@v8.1.0 step from the release job — nothing in the workflow invokes uv (it's only used locally in scripts/setup.sh for prek hooks). This also clears the empty cache-glob warning noted in ci: update GitHub Actions using deprecated Node.js 20 runtime #229.

Validation

  • actionlint parses all three files cleanly and resolves the local composite action reference; the only remaining warnings are pre-existing SC2086 infos on unchanged lines.
  • Ran the composite action's download/checksum/extract logic locally end-to-end: checksum OK, zig version0.15.2.
  • Pre-commit hooks (incl. check yaml) pass.

Closes #151
Closes #229

🤖 Generated with Claude Code

`xavierLowmiller/xcodegen-action` and `mlugg/setup-zig` both still declare
the Node 20 runtime at their latest versions, which GitHub forces to Node 24
on 2026-06-02 and removes entirely on 2026-09-16.

- XcodeGen: install via `brew install xcodegen`
- Zig: install via a pinned, checksum-verified download in a local composite
  action (`.github/actions/install-zig`), keeping the version and integrity
  check in one place for both workflows
- Drop the unused `astral-sh/setup-uv` step from the release job (nothing in
  the workflow invokes uv; this also clears its empty cache-glob warning)

Closes #151
Closes #229

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@davidpoblador davidpoblador merged commit 865cdb2 into main May 29, 2026
2 checks passed
@davidpoblador davidpoblador deleted the ci/replace-node20-actions branch May 29, 2026 10:32
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.

ci: update GitHub Actions using deprecated Node.js 20 runtime ci: update GitHub Actions using deprecated Node.js 20

1 participant