Skip to content

Upgrade to Node 24#113

Open
benjyw wants to merge 1 commit into
arduino:masterfrom
benjyw:node24
Open

Upgrade to Node 24#113
benjyw wants to merge 1 commit into
arduino:masterfrom
benjyw:node24

Conversation

@benjyw

@benjyw benjyw commented Mar 18, 2026

Copy link
Copy Markdown

Node 20 actions are deprecated and GHA will
refuse to run them in a few months.

This change:

  • upgrades the action to Node 24
  • upgrades actions it uses to versions on Node 24
  • modifies how upload-artifact is used, as required
    by a breaking change to that action.

@CLAassistant

CLAassistant commented Mar 18, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@benjyw

benjyw commented Mar 18, 2026

Copy link
Copy Markdown
Author

Note that the markdown link check fails on a URL that exists, likely because npmjs.com have switched to stricter Cloudflare bot detection. I leave it to the maintainers to decide how to handle this.

@per1234 per1234 added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure labels Mar 24, 2026
@per1234 per1234 linked an issue Mar 24, 2026 that may be closed by this pull request
3 tasks
gartnera added a commit to agtonomy/setup-protoc that referenced this pull request Apr 27, 2026
Node 20 actions are deprecated and GHA will refuse to run them in a
few months.

This change:
- upgrades the action to Node 24
- upgrades actions it uses to versions on Node 24
- modifies how upload-artifact is used, as required by a breaking
  change to that action.

Squashed from arduino#113 by Benjy Weinberger <benjyw>.

Co-authored-by: Benjy Weinberger <benjyw@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
avilagaston9 pushed a commit to lambdaclass/ethrex that referenced this pull request Apr 30, 2026
…s 20 to their latest Node-24 majors so every workflow that has an upstream fix stops emitting the deprecation warning. Each bump was audited for breaking changes and security posture before applying. Updates dorny/paths-filter to v4, docker/build-push-action to v7, docker/login-action to v4, docker/setup-buildx-action to v4, docker/setup-qemu-action to v4, peter-evans/find-comment to v4, peter-evans/create-or-update-comment to v5, amannn/action-semantic-pull-request to v6, Jimver/cuda-toolkit to v0.2.35, and softprops/action-gh-release to v3. arduino/setup-protoc is intentionally left at v3 because no Node-24 release exists upstream yet (open PR arduino/setup-protoc#113), so its single call site in tag_release.yaml will continue to emit the warning until that PR merges. After this change, a static scan of .github/ reports a single Node-20 action reference (down from 31 on the previous PR commit and 150 on main), and that reference is the unavoidable arduino/setup-protoc one.
@jonasdedden

Copy link
Copy Markdown

Hey @benjyw, any update on this? :) setup-protoc will fail in less than a month, how can we proceed?

@benjyw

benjyw commented May 6, 2026

Copy link
Copy Markdown
Author

Hey @benjyw, any update on this? :) setup-protoc will fail in less than a month, how can we proceed?

I think this is up to @per1234 or someone else with write access in this repo. I have signed the CLA and the status badge finally shows this. The markdown link check is failing erroneously.

For now you can fork the repo and reference your own branch on your fork? I don't want to guarantee that use benjyw/setup-protoc@fa4f90f will be around forever...

@rdamazio

Copy link
Copy Markdown

It's looking like this repo is dead? 😦

@StackOverflowExcept1on

Copy link
Copy Markdown

Hey @benjyw, it's still warns about old deps:

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-node@v4, arduino/setup-task@v1, xt0rted/markdownlint-problem-matcher@v1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/

@StackOverflowExcept1on

Copy link
Copy Markdown

Actual fix: https://github.com/StackOverflowExcept1on/setup-protoc/tree/node24

      # TODO: swicth back to `arduino/setup-protoc@v3` after it supports Node 24
      - name: Install Protoc
        uses: StackOverflowExcept1on/setup-protoc@node24
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

@rdamazio

Copy link
Copy Markdown
    uses: StackOverflowExcept1on/setup-protoc@node24

I don't know about others, but I'm immediately hesitant to adopt an action from a user that owns repo StackOverflowExcept1on/how-to-hack-github-actions and takes in my repo token :)

@rdamazio

Copy link
Copy Markdown

I checked the delta from the original arduino repo and it seems fine so far, but I'd recommend at least something like this instead to make sure that continues to be the case:

      # TODO: swicth back to `arduino/setup-protoc@v3` after it supports Node 24
      - name: Install Protoc
        uses: StackOverflowExcept1on/setup-protoc@f5f2b9afbd3d14a13caf3e0b4f6c109ed8f3e89c
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

(@StackOverflowExcept1on for similar reasons you may want to consider hardcoding the hash for anthonyafgx/setup-task@chore/bump-node24 used in your repo)

@StackOverflowExcept1on

Copy link
Copy Markdown

@rdamazio ok, make sense!

rdamazio added a commit to rdamazio/efis-editor that referenced this pull request May 31, 2026
It seems the original arduino/setup-protoc repo is dead (per
arduino/setup-protoc#113), so adopting this
version for now after having manually checked the delta.
@StackOverflowExcept1on

Copy link
Copy Markdown

Now with improved security (pin commit hash for here and for dependencies): https://github.com/StackOverflowExcept1on/setup-protoc/tree/node24. We use it at https://github.com/gear-tech/builds.

      # TODO: swicth back to `arduino/setup-protoc@v3` after it supports Node 24
      - name: Install Protoc
        uses: StackOverflowExcept1on/setup-protoc@3c8638272249639ffb4bc8571caff93ee0383579
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

@StackOverflowExcept1on

Copy link
Copy Markdown

It would also be nice to fix this in my fork, but I don't know how yet.

(node:2269) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
(Use `node --trace-deprecation ...` to show where the warning was created)

@houseme

houseme commented Jun 1, 2026

Copy link
Copy Markdown

rustfs/setup-protoc@v3.0.1

@arduino arduino locked as off-topic and limited conversation to collaborators Jun 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Node.js 24 to keep this action working

7 participants