GitHub Actions Node Version Bump #79
Description
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Activity
BnJam commentedon Jul 31, 2026
Starting work on this issue. I will investigate the GitHub Actions workflows for usages of Node.js 20 actions (actions/checkout@v4, actions/setup-python@v5), check for updated major versions that support Node.js 24, and bump them accordingly.
BnJam commentedon Jul 31, 2026
Opened PR: #80
BnJam commentedon Jul 31, 2026
technocore completed pipeline
issue-handler.Let me verify the latest versions of these actions and their Node 24 support.
Let me audit which actions in these workflows actually run on Node 20 by checking their action manifests.
Several more actions run on node20. Let me check the newest majors for the third-party and remaining first-party actions.
Let me check the repo's recent history and any related prior work to understand scope conventions.
The issue names exactly two actions. Let me verify the setup-python@v6 and checkout@v5 runtime and confirm no input/behavior changes that matter for these workflows.
Both bumps are runtime-only (node24) with unchanged inputs. Creating the fix branch and applying the changes.
All active lines updated; commented-out dead code left untouched. Verifying YAML validity:
No YAML parser available; the diff is version-string-only, so structure is preserved. Reviewing the final diff:
Done. PR opened at #80.
Fix summary:
actions/checkout@v4 → @v5andactions/setup-python@v5 → @v6(both Node 24 runtimes, runtime-only changes) across all 4 workflow files:ci.yml,release.yml,static.yml,tag-release.yml(20 replacements; commented-out dead code inrelease.yml:240-300left untouched).action.ymlmanifests.BnJam commentedon Jul 31, 2026
Starting work on this issue... I will inspect the GitHub Actions workflow files, identify usages of actions/checkout@v4 and actions/setup-python@v5 running on Node.js 20, and bump them to the latest available versions that support Node.js 24.
BnJam commentedon Jul 31, 2026
Opened PR: #80
Investigation summary:
BnJam commentedon Jul 31, 2026
Starting work on this issue...
BnJam commentedon Jul 31, 2026
Resuming work on this issue. Auditing all GitHub Actions in .github/workflows for Node.js 20 runtimes, verifying Node 24-compatible majors via their action.yml manifests, and bumping each affected action.
BnJam commentedon Jul 31, 2026
Updated PR: #80
Extended the fix to cover ALL Node 20 actions in the workflows (verified Node 24 runtimes via each action's action.yml): checkout v4->v5, setup-python v5->v6, upload-artifact v4->v6, download-artifact v4->v7, setup-uv v3->v7, setup-qemu-action v3->v4, upload-pages-artifact v3->v5, configure-pages v5->v6, deploy-pages v4->v5.
BnJam commentedon Jul 31, 2026
technocore completed pipeline
issue-handler.Network is back. Let me read the current workflow files and verify the action versions.
Now let me verify the latest available versions of all actions in use against the GitHub API.
The GitHub API is authoritative here and shows newer majors exist than what's currently in the working tree. Let me check the reflog to understand the previous session's progress, and verify Node-24 support per action major.
Let me check if there's any existing PR or reference for this issue on the repo.
PR #80 already exists for this issue. Let me inspect it.
Let me verify the actual Node runtimes of the actions by fetching their
action.ymlmanifests.Verified ground truth. The uncommitted changes bump each action to its first Node-24 major (all confirmed via
action.yml):upload-artifact@v4→v6,download-artifact@v4→v7,setup-uv@v3→v7,qemu@v3→v4,configure-pages@v5→v6,deploy-pages@v4→v5,upload-pages-artifact@v3→v5(composite, latest)This is consistent with the committed
checkout@v4→v5andsetup-python@v5→v6. Let me confirm there are no other workflow files or actions I'm missing.All workflow files verified. The diff is version-string-only, so YAML structure is preserved. Let me post the acknowledgment, then commit the pending changes.
Now push and update the existing PR #80.
Done. PR #80 now contains the complete fix for issue #79.
What was done:
.github/workflows/{ci,release,static,tag-release}.yml) for Node 20 actions.action.yml(runs.using), not guesses.checkout@v4→v5,setup-python@v5→v6,upload-artifact@v4→v6,download-artifact@v4→v7,setup-uv@v3→v7,setup-qemu-action@v3→v4,upload-pages-artifact@v3→v5,configure-pages@v5→v6,deploy-pages@v4→v5(incl. commented refs inrelease.yml).technocore/issue-79-fix(HEAD5c65c7c), updated PR fix(ci): bump GitHub Actions to Node 24 runtimes #80 body, and posted the PR URL on the issue. PR is open and mergeable.BnJam commentedon Jul 31, 2026
Starting work on this issue. I'll inspect the GitHub Actions workflow files, check for actions running on deprecated Node.js 20 (actions/checkout@v4, actions/setup-python@v5), and bump them to versions that support Node.js 24.
BnJam commentedon Jul 31, 2026
Verification complete for PR #80 (already open, branch in sync).
All Node.js 20 actions in the workflows have been bumped to Node 24 runtimes (verified via each action's action.yml
runs.using: node24):Files updated: .github/workflows/{ci,release,static,tag-release}.yml
Note on CI: the failing
tox -e lintstep is a pre-existing issue on main (46 ruff errors in python/eo_processor/cli.py: UP006 Dict->dict, BLE001 blind except) unrelated to these workflow changes — the PR only touches .github/workflows/*.BnJam commentedon Jul 31, 2026
technocore completed pipeline
issue-handler.Now let me check the current versions of the flagged actions to confirm what's available.
Let me verify which major versions of these actions run on Node 24 by checking their metadata.
Let me check the release details for the action versions to pick appropriate targets.
Let me inspect the composite
upload-pages-artifactaction versions and check setup-uv compatibility.Let me verify release dates for the target versions of the other Node-20 actions.
All targets verified as Node 24 and input-compatible. Now creating the fix branch.
Now making the edits. Starting with
ci.yml:The file already contains updated versions. Let me investigate the git state — the branch may already exist with changes.
A fix branch with commits already exists. Let me review its state versus main and check for an existing PR.
PR #80 already exists. Let me review the full diff to verify correctness and completeness.
The existing branch/PR implements exactly the fix I verified needed. Let me check whether local and remote branches are in sync.
Branch is in sync with the remote PR. Let me do a final verification that no Node 20 actions remain and check PR #80's status.
PR CI shows the "Tests via tox" jobs failing. Let me investigate the failure logs to determine root cause.
The lint failures are pre-existing ruff errors in
cli.py, unrelated to the action bumps. Let me check what the other test jobs failed on.The test jobs were cancelled after the lint step failed. Let me verify these lint failures are pre-existing (not caused by this PR) by checking main's CI.
Confirmed: the lint failures (46 ruff errors in
python/eo_processor/cli.py) are pre-existing and identical across commits — unrelated to the action bumps (the PR only touches.github/workflows/*). Let me check the issue's existing comments and PR body.Prior runs already created PR #80 and posted updates. Let me do a final comprehensive scan for any remaining Node 20 action references across the repo.
The fix is verified complete. All Node 20 actions are bumped to Node 24-compatible versions (verified against each action's
action.yml), and the remaining actions (dtolnay/rust-toolchaincomposite,maturin-action@v1,release-action@v1) already use Node 24 or are composite-only. Let me post a status comment on the issue.Done. The fix for issue #79 was already in place on branch
technocore/issue-79-fix(PR #80, open and mergeable), and I verified it end-to-end:action.yml(runs.using: node24):checkout@v4→v5,setup-python@v5→v6,upload-artifact@v4→v6,download-artifact@v4→v7,upload-pages-artifact@v3→v5,configure-pages@v5→v6,deploy-pages@v4→v5,setup-uv@v3→v7,setup-qemu-action@v3→v4— across.github/workflows/{ci,release,static,tag-release}.yml.dtolnay/rust-toolchain,maturin-action@v1,release-action@v1) confirmed node24/composite-only.tox -e lintstep fails with 46 ruff errors inpython/eo_processor/cli.py(main's code, untouched by the PR) — identical across all commits.gh pr createneeded (CI retry case). Posted a status summary at GitHub Actions Node Version Bump #79 (comment).BnJam commentedon Jul 31, 2026
Starting work on this issue. I'll inspect the GitHub Actions workflow files, identify the actions pinned to Node.js 20, and bump them to versions that support Node.js 24.
BnJam commentedon Aug 1, 2026
Opened PR: #80
Summary
Bumped every GitHub Action running on the deprecated Node.js 20 runtime to its first Node 24-compatible major, verified against each action's
action.yml(runs.using: node24):actions/checkout@v4->@v5actions/setup-python@v5->@v6actions/upload-artifact@v4->@v6actions/download-artifact@v4->@v7astral-sh/setup-uv@v3->@v7docker/setup-qemu-action@v3->@v4actions/upload-pages-artifact@v3->@v5actions/configure-pages@v5->@v6actions/deploy-pages@v4->@v5Applied across all 4 workflow files (
ci.yml,release.yml,static.yml,tag-release.yml).CI status
The first CI run failed only in
tox -e lintfor a pre-existing, unrelated reason: Ruff 0.16.0 (released 2026-07-23) expanded its default rule set from 59 to 413 rules, and the unpinnedruff>=0.4.0intox.inistarted flagging 46 violations in code identical tomain(UP006,UP045,UP035,BLE001,I001,RUF013,RUF022,C408incli.py,__init__.py,__init__.pyi). Fixed by pinning the classic rule set via[tool.ruff.lint] select = ["E4", "E7", "E9", "F"]inpyproject.toml(per Ruff's official 0.16 migration notes). CI is now fully green across all matrix jobs.fix(ci): bump GitHub Actions to Node 24 runtimes (#80)