Skip to content

ci: GitHub Actions majors for Node 24 (checkout v7, upload/download-artifact v7/v8, setup-python v7, setup-node v7, cache v6, github-script v9) - #155

Merged
dorkmo merged 4 commits into
mainfrom
ci-actions-majors-2026-10-17
Oct 18, 2026
Merged

dorkmo merged 4 commits into
mainfrom
ci-actions-majors-2026-10-17

Conversation

@dorkmo

@dorkmo dorkmo commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Why

Every CI run on main annotates: "Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4 …" (also upload-artifact@v4, setup-python@v5, cache@v4). The current majors run on Node 24 natively.

What

44 uses: lines in 13 workflows (43 at first, plus the X8 recovery shell-scripts job that #153 added to arduino-ci.yml; main merged in), majors only as before, nothing else changed:

action from to uses
actions/checkout v4 v7 24
actions/upload-artifact v4 v7 12
actions/setup-python v5 v7 3
actions/github-script v7 v9 2
actions/download-artifact v4 v8 1
actions/setup-node v4 v7 1
actions/cache v4 v6 1

Checked against each major's release notes, for this repo's usage

  • download-artifact v5 changed the output path for downloads by id; generate-part-drawings downloads by name. v8 fails on a digest mismatch by default (was a warning).
  • checkout v6 keeps the token in a file outside .git/config; every commit-back step here runs git push directly on the runner, never in a container. v7 blocks fork checkouts under pull_request_target / workflow_run, which no workflow uses.
  • github-script v9 drops require('@actions/github'); both scripts use require('fs') and github.rest only.
  • setup-node v5 adds automatic npm caching keyed on package.json; generate-web-controller-preview runs npm init after setup-node, so none exists at that point.
  • setup-python v7 removes the unused pip-install input. cache v6 and upload-artifact v7 are Node 24 / ESM moves; upload's new archive: false mode is opt-in.
  • All jobs run on GitHub-hosted ubuntu-latest / ubuntu-24.04, above the 2.327.1 runner minimum.

What this PR exercises

  • On the PR: arduino-ci, l072-bench-md5, generate-part-drawings (upload, then download by name), generate-part-svgs, openscad-collision-check.
  • On the branch push: generate-jig-previews, generate-web-controller-preview (setup-node), openscad-render, openscad-structural-analysis. Their commit-back steps may add a [skip ci] render commit to this branch, as for any push touching their files.
  • Not exercised: github-script@v9. Its PR-comment steps run only on pull_request events of the two openscad workflows, whose PR path filters exclude workflow files; the script bodies were read instead.

🤖 Generated with Claude Code

…setup-python v7, setup-node v7, cache v6, github-script v9)

Every CI run on main annotates "Node.js 20 is deprecated. The following
actions target Node.js 20 but are being forced to run on Node.js 24" for
checkout@v4, upload-artifact@v4, setup-python@v5 and cache@v4. The current
majors run on Node 24 natively. 43 uses: lines in 13 workflows, majors
only as before; nothing else changes.

Checked against each major's release notes for this repo's usage:
download-artifact v5's path change is for downloads by id (ours is by
name); checkout v6 keeps the token outside .git/config, and every
commit-back step runs git on the runner, not in a container; checkout v7
blocks fork checkouts only under pull_request_target / workflow_run
(unused); github-script v9 drops require('@actions/github'), and both
scripts use require('fs') and github.rest only; setup-node v5's automatic
npm caching needs a package.json, which the preview workflow creates after
setup-node; setup-python v7 removes the unused pip-install input. All jobs
run on GitHub-hosted ubuntu-latest / ubuntu-24.04 (runner >= 2.327.1).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 17, 2026 17:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The action upgrades are compatible with existing workflow usage, and no blocking issues were identified.

No open issues 🎉

What changed in this PR

Updates GitHub Actions to majors that run natively on Node 24, addressing CI deprecation warnings without changing workflow logic.

Changes:

  • Updates 43 action references across 13 workflows.
  • Refreshes the generated structural-analysis log with the latest run metadata.
File Description
LifeTrac-v25/​DESIGN-STRUCTURAL/​STRUCTURAL_ANALYSIS_LOG.md Refreshes analysis run metadata.
.github/​workflows/​openscad-structural-analysis.yml Updates checkout, artifact upload, and PR scripting.
.github/​workflows/​openscad-render.yml Updates checkout, artifact upload, and PR scripting.
.github/​workflows/​openscad-collision-check.yml Updates checkout, Python setup, and artifact upload.
.github/​workflows/​l072-bench-md5.yml Updates checkout, toolchain caching, and artifact upload.
.github/​workflows/​generate-web-controller-preview.yml Updates checkout, Node setup, and screenshot upload.
.github/​workflows/​generate-utu-animation-gif.yml Updates checkout and animation upload.
.github/​workflows/​generate-part-svgs.yml Updates checkout and SVG upload.
.github/​workflows/​generate-part-drawings.yml Updates checkout, Python setup, and artifact transfers.
.github/​workflows/​generate-jig-previews.yml Updates checkout and render upload.
.github/​workflows/​generate-cnclayout-svg.yml Updates checkout.
.github/​workflows/​generate-assembly-png.yml Updates checkout and assembly image upload.
.github/​workflows/​generate-animation-gif.yml Updates checkout and animation upload.
.github/​workflows/​arduino-ci.yml Updates checkout, Python setup, and firmware upload.

Review effort: Balanced

dorkmo and others added 2 commits October 18, 2026 10:27
The job arrived on main after this branch was cut; with it, all 44 uses:
lines in the 13 workflows are on the Node 24 majors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dorkmo
dorkmo merged commit dfa62a2 into main Oct 18, 2026
30 checks passed
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.

2 participants