Skip to content

Move CI off the Node 20 runtime before GitHub removes it - #28

Merged
welshofer merged 1 commit into
mainfrom
jaywelshofer-microsoft-didactic-waffle
Aug 17, 2026
Merged

Move CI off the Node 20 runtime before GitHub removes it#28
welshofer merged 1 commit into
mainfrom
jaywelshofer-microsoft-didactic-waffle

Conversation

@welshofer

Copy link
Copy Markdown
Owner

Every CI run was emitting a deprecation annotation:

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.

actions/deploy-pages@v4 is in the same position — it just wasn't flagged in the logs I happened to read, because Docs only runs on main. Both are one upstream release away from failing rather than warning.

checkout v4 → v7, not the minimum v5 that silences the warning. All three call sites are bare uses: with no inputs, and v7's single behavioural change — blocking fork checkouts under pull_request_target and workflow_run — applies to triggers this repo doesn't use (push and pull_request only). Verified v5/v6/v7 all run node24, so v7 costs nothing extra.

deploy-pages v4 → v5. Runtime bump only; nothing else in the diff between them touches how we call it.

upload-pages-artifact stays at v3, now with a comment explaining why so the next person doesn't "finish the job":

  • It's a composite action wrapping actions/upload-artifact@v4 — current, and no Node 20 runtime of its own. There is no deprecation here to fix.
  • v4 stopped including dotfiles in the artifact. site is generated by docc process-archive transform-for-static-hosting, so its contents aren't ours to vouch for — that's a silent breakage landing on a docs deploy nobody watches.

Taking a breaking change to fix a problem that doesn't exist isn't a bump worth making.

Both workflow files re-validated as YAML.

Every run was annotating: `actions/checkout@v4` targets Node 20, which the
runners already force onto Node 24. `actions/deploy-pages@v4` is the same —
unflagged only because Docs runs on main alone. Both are one release away
from failing instead of warning.

checkout goes to v7 rather than the minimum v5 that clears the warning,
since all three call sites are bare `uses:` with no inputs and v7's one
behavioural change — blocking fork checkouts under `pull_request_target`
and `workflow_run` — applies to triggers this repo does not use.

upload-pages-artifact deliberately stays at v3, with a comment saying so.
It is a composite wrapping upload-artifact@v4, so it has no Node 20 problem
to solve, and its v4 stopped including dotfiles in the artifact. `site` is
produced by `docc process-archive transform-for-static-hosting`, so its
contents are not ours to vouch for — that is a silent breakage waiting on a
docs deploy nobody watches. Not worth taking for a bump we do not need.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@welshofer
welshofer merged commit 7cc8753 into main Aug 17, 2026
6 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.

1 participant