actnode

Node 24 all lanes

Your GitHub Actions still on Node 20 are in a lane that ends. actnode finds each one, names the release that runs on Node 24, and moves you over.

NODE 20EXIT ONLYLANE ENDS

EXIT 1

Install

pipx install git+https://github.com/Blackman99/actnode

Python 3.9+, zero dependencies. Or skip installing and use the GitHub Action below.

EXIT 2

Scan the repo

$ actnode
[OLD] .github/workflows/ci.yml:7   node20  actions/checkout@v4       -> actions/checkout@v5
[OLD] .github/workflows/ci.yml:9   node20  actions/cache@v4          -> actions/cache@v5
[OLD] .github/workflows/ci.yml:11  node20  some-org/deploy@v2        no release on node24 yet

3 step(s) run an action older than node24; 2 have a newer release ready.

It reads every uses: in your workflows and local actions, fetches each action's action.yml at that exact ref, follows composite actions and reusable workflows inside, and picks the smallest major jump that runs on Node 24. SHA pins get a SHA back. Or scan remote with actnode --repo owner/name — no clone.

EXIT 3

Change lanes

$ actnode --fix
-      - uses: actions/checkout@11bd719… # v4.2.2
+      - uses: actions/checkout@fbc6f39… # v5.1.0
-      - uses: actions/setup-node@v4.1.0
+      - uses: actions/setup-node@v5.0.0

Only the lines with a known fix are rewritten; quotes, comments and indentation stay. Review the majors' changelogs, then commit.

EXIT 4

Keep it in CI

- uses: actions/checkout@v7
- uses: Blackman99/actnode@v0.1.0
  with:
    fail: true   # red build if an old-runtime action sneaks back

Writes a table to the job summary. The FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 switch only hides the problem for now; actnode tells you what to bump before Node 20 is removed from runners.

  • Docsinstall · usage · reference · FAQ
  • GitHubsource · issues · MIT
  • Blogwhy the warning won't go away · a worked migration