Skip to content

Move the workflows off the deprecated Node 20 actions - #19

Merged
peopleworks merged 2 commits into
mainfrom
chore/current-actions
Aug 17, 2026
Merged

Move the workflows off the deprecated Node 20 actions#19
peopleworks merged 2 commits into
mainfrom
chore/current-actions

Conversation

@peopleworks

Copy link
Copy Markdown
Owner

Every run has been carrying this 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/setup-dotnet@v4.

Forced today; failing whenever the runners stop forcing it. The workflows that would fail include nuget.yml and mcp-registry.yml, which nobody exercises until a release is being published — the worst moment to find out.

What changed

  • actions/checkout v4 → v7
  • actions/setup-dotnet v4 → v6

To the current majors rather than to the first version that clears the warning, so this does not come back in three months.

Why the jump is safe here

Checked rather than assumed — three majors is enough range to hide something:

Change Applies here?
checkout@v5: Node 24, requires runner ≥ v2.327.1 GitHub-hosted runners, long past it
checkout@v6: persists credentials to a separate file No workflow runs git after checkout
checkout@v7: blocks checking out a fork PR under pull_request_target / workflow_run Neither trigger is used anywhere in this repo
setup-dotnet@v5: drops support for older .NET versions This builds .NET 10
setup-dotnet@v6: ESM migration No behavioural change named

actions/upload-artifact@v4 and the Pages actions are left alone: the deprecation names neither, and each additional bump is risk without a reason.

CI and CodeQL exercise the changed files on this PR; pages.yml runs on the merge to main. nuget.yml and mcp-registry.yml are only reachable from a release, so they are the ones to watch on the next one.

Also

docs/RELEASING.md now records how a publish is verified, from the 0.13.0 release:

  • install with --tool-path so verifying cannot leave you on a version you did not choose to run
  • read the nuget.org index twice. It is cached per CDN edge, and two requests seconds apart returned 0.12.1 and 0.13.0 for the same package. A single read looks exactly like a push that failed.

peopleworks and others added 2 commits August 16, 2026 21:10
Every run has been annotating: "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/setup-dotnet@v4." Forced today, failing
whenever the runners stop forcing it -- and the workflows that would fail
are the two nobody exercises until a release is being published.

To the current majors rather than the first one that clears the warning, so
this is not done again in three months: checkout v4 -> v7, setup-dotnet
v4 -> v6.

The two behavioural changes in that range do not reach this repository, and
both were checked rather than assumed. checkout v6 persists credentials to
a separate file: no workflow here runs git after the checkout. checkout v7
blocks checking out a fork's PR under pull_request_target and workflow_run:
no workflow here uses either trigger. setup-dotnet v5 drops support for
older .NET versions; this builds .NET 10.

Also records how a publish is verified, from the 0.13.0 release: install to
a --tool-path so verifying cannot change the version you are running, and
read the nuget.org index twice. It is cached per CDN edge, and two requests
seconds apart returned 0.12.1 and 0.13.0 for the same package -- a single
read looks exactly like a push that failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Clearing the first two warnings made this one visible: init@v3 and
analyze@v3 are the remaining Node 20 actions, and GitHub has put a date on
them -- "CodeQL Action v4 will be deprecated in December 2026", which is
not a warning to leave sitting in a security workflow that also runs on a
weekly schedule nobody watches.

Nothing in the v3-to-v4 range touches this workflow. The changes are to the
config-file address format and to private registry support, and this
initializes with two inline inputs and no config file. The build stays
manual for the reason already recorded above it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@peopleworks
peopleworks merged commit 15312ec into main Aug 17, 2026
6 checks passed
@peopleworks peopleworks mentioned this pull request Aug 17, 2026
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