Files
compiler-explorer/.github
Matt Godbolt (bot acct) abe65dc410 Bump workflow actions to Node 24 majors (#8936)
Every CI run currently emits "Node.js 20 is deprecated. The following
actions target Node.js 20 but are being forced to run on Node.js 24"
runner annotations (visible on every job of the main build and the
Windows build). These come from the runner at execution time, so the
actionlint gate added in #8912 can't catch them: actionlint checks
workflow files statically and has no knowledge of which Node runtime an
action's implementation targets.

This bumps every runner-flagged action to its latest major, all of which
target node24:

| Action | From | To |
|---|---|---|
| actions/checkout | v4 | v7 |
| actions/setup-node | v4 | v7 |
| actions/upload-artifact | v4 | v7 |
| actions/download-artifact | v4 | v8 |
| actions/setup-python | v5 | v7 |
| actions/labeler | v5 | v6 |
| actions/github-script | v7 | v9 |
| github/codeql-action | v3 | v4 |
| peter-evans/create-pull-request | v6 | v8 |
| cypress-io/github-action | v6 | v7 |
| browser-actions/setup-chrome | v1 | v2 |
| codecov/codecov-action | v5 | v7 |
| astral-sh/setup-uv | v6 | v8.3.2 (exact pin; from v8 they publish
immutable releases only, no floating major tags) |

The last three rows came from iterating: this branch's own push builds
run the full workflow (including the real deploy path), and scanning
their annotations after each round caught what the first sweep missed —
our github-script uses, codecov-action (whose v5 pins a node20
github-script by SHA internally; their v6 fixed that), and setup-uv.

codeql-action v3 additionally carries its own deprecation warning
(sunset December 2026).

**Behaviour changes checked against our usage:**
- create-pull-request v7 renamed `git-token` to `branch-token` and
removed the `PULL_REQUEST_NUMBER` env output: browserslist.yml uses
neither.
- setup-python v7 removed the `pip-install` input:
check-infra-settings.yml doesn't use it.
- github-script v9: `require('@actions/github')` no longer works inside
scripts; neither of ours does that (one calls
`github.rest.git.createRef`, the other requires only the core `fs`
module).
- setup-uv v7/v8 removed the `server-url` input and changed the
manifest-file format: we pass no inputs.
- setup-chrome v2 installs Chrome for Testing by default: fine (arguably
better) for the Cypress frontend tests.
- download-artifact v8 now errors on hash mismatch by default: a fix we
want.
- checkout v7 blocks fork-PR checkout under
`pull_request_target`/`workflow_run` unless opted in: our only such
workflows (label.yml, check-infra-settings-comment.yml) don't use
checkout at all.
- codecov-action v6 is their node24 bump; v7 only rotates their signing
account. Our `token`/`verbose` usage is unaffected.

**Deliberately left alone:**
- `browser-actions/setup-firefox@v1`: latest release is still v1 (1.7.x,
node24).
- `wow-actions/potential-duplicates@v1`: upstream is unmaintained (last
release 2022); no node24 version exists. Its warning will remain on
duplicate-detection runs until we replace or drop it.
- `jakejarvis/s3-sync-action@master`: a Docker action, unaffected by the
Node runtime deprecation.

**Validation:**
- actionlint 1.7.12 (the pinned CI version) passes clean.
- All PR checks green across two full rounds, including Cypress on
Chrome for Testing and CodeQL v4.
- Because pushes to any branch run the real deploy job, the complete
chain (dist build → download-artifact v8 → sentry → S3 sync →
github-script v9 tagging → post_deploy_check on admin-node) ran green
for real.
- Runner compatibility: these majors require Actions Runner >= 2.327.1;
the self-hosted admin-node and ce fleet runners are all on 2.335.1
(confirmed from job logs).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: mattgodbolt-molty <mattgodbolt-molty@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 22:44:52 +01:00
..
2025-01-27 16:12:59 -06:00
2024-09-12 14:47:39 -05:00