Skip to content

ci: move actions off deprecated Node 20 - #88

Merged
bmxcode merged 2 commits into
mainfrom
ci-actions-node24
Sep 5, 2026
Merged

bmxcode merged 2 commits into
mainfrom
ci-actions-node24

Conversation

@bmxcode

@bmxcode bmxcode commented Sep 5, 2026 •

Copy link
Copy Markdown
Owner

Why

Every Actions run has been warning that actions/checkout, actions/upload-artifact, actions/download-artifact, and astral-sh/setup-uv target Node 20, which GitHub is retiring and currently forces onto a Node 24 compatibility shim. This pins each to a Node 24 version so the workflows keep running once the shim is removed.

Changes

Action From To
actions/checkout v4 v7
astral-sh/setup-uv v5 v10.0.1
actions/upload-artifact (release.yml) v4 v7
actions/download-artifact (release.yml) v4 v8

Each target declares using: node24. pypa/gh-action-pypi-publish@release/v1 is a container action, not Node-based, and was left untouched.

setup-uv is pinned to the exact v10.0.1 rather than a floating @v10: unlike the actions/* actions, astral-sh/setup-uv does not publish a moving major tag past v6, so @v10 fails to resolve. checkout/upload/download do publish floating majors (v7/v7/v8) and stay on them.

Compatibility notes (checked, since release.yml can't run on a PR)

release.yml runs only on tags, so its build→publish artifact handoff isn't exercised by PR CI. Verified from the changelogs that the bump is safe for our usage:

  • upload v7 / download v8 — v7 adds optional direct (unzipped) single-file uploads via archive: false; we upload the whole dist/ directory (multiple files), so the default zip path is unchanged, and download v8 detects the zip and unzips it as before.
  • download v8 now errors on a hash mismatch by default instead of warning — strictly safer for a publish handoff.
  • Both migrated to ESM, which the release notes state is transparent to callers.

ci.yml (checkout + setup-uv) is exercised by this PR's own run, so verify and container passing here validate those two directly. The artifact-action bump gets its live test at the next tagged release.

🤖 Generated with Claude Code

bmxcode and others added 2 commits September 5, 2026 22:10
Every Actions run warned that checkout, upload-artifact, download-artifact
and setup-uv target Node 20, which GitHub is retiring and currently forces
onto a Node 24 shim. Pin each to its current Node 24 major:

  actions/checkout        v4 -> v7
  astral-sh/setup-uv      v5 -> v10
  actions/upload-artifact v4 -> v7   (release.yml)
  actions/download-artifact v4 -> v8 (release.yml)

pypa/gh-action-pypi-publish is a container action, not Node-based, so it is
untouched. The release upload/download handoff stays compatible: dist/ is a
multi-file directory, so it is zipped on upload as before and download@v8
unzips it; v8's hash-mismatch-errors default is strictly safer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
astral-sh/setup-uv publishes floating major tags through v6 but not v10,
so @v10 failed to resolve ("unable to find version v10"). Pin the exact
v10.0.1, which is Node 24. The other three actions do publish floating
majors (checkout@v7, upload-artifact@v7, download-artifact@v8), so those
stay on the major tag.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bmxcode
bmxcode merged commit c793e2f into main Sep 5, 2026
2 checks passed
@bmxcode
bmxcode deleted the ci-actions-node24 branch September 5, 2026 12:16
bmxcode added a commit that referenced this pull request Sep 5, 2026
No change to the tool. Bump to 0.5.3 so the workflows now running on
GitHub Actions' Node 24 majors (merged in #88) are exercised by a real
tagged release for the first time, including the upgraded
upload/download-artifact handoff in the publish job.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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