Skip to content

chore(ci): move GitHub Actions and CI Node.js to 24 - #133

Merged
mbroton merged 1 commit into
mainfrom
chore/ci-actions-node24
Oct 19, 2026
Merged

mbroton merged 1 commit into
mainfrom
chore/ci-actions-node24

Conversation

@mbroton

@mbroton mbroton commented Oct 19, 2026

Copy link
Copy Markdown
Owner

Problem

  • Every action in the workflows ran on the deprecated Node.js 20 runtime, and
    GitHub forces them onto Node.js 24 with a warning.
  • CI and the release smoke test installed the worker on Node.js 20, but the
    Playwright base image (mcr.microsoft.com/playwright:v1.64.1) ships
    Node.js 24. CI did not test the runtime we ship.
  • Dependabot did not track GitHub Actions, so the versions went stale.

Change

  • Update each action to its newest major, which runs on Node.js 24:

    Action Old → new
    actions/checkout v4 → v7
    actions/setup-go v5 → v7
    actions/setup-node v4 → v7
    actions/upload-pages-artifact v3 → v5
    actions/deploy-pages v4 → v5
    docker/build-push-action v6 → v7
    docker/setup-buildx-action v3 → v4
    docker/setup-qemu-action v3 → v4
    docker/login-action v3 → v4
    docker/metadata-action v5 → v6
    softprops/action-gh-release v2 → v3

    The release notes of every major in between show no input that these
    workflows use as renamed or removed, and no default that they rely on as
    changed.

  • Use node-version: '24' in ci.yml and release.yml.

  • Add a weekly, grouped Dependabot update for GitHub Actions.

Impact

  • No change to the server, worker, images, or documentation.
  • The website deploy runs on merge, because this PR changes website.yml.
    That run exercises upload-pages-artifact v5 and deploy-pages v5.
  • The publish job in release.yml (login, metadata, QEMU, and release
    actions) runs only on a version tag, so the next release exercises it.

Verification

  • Worker tests on Node.js 24: 51 of 51 pass. Typecheck passes.
  • Bench script checks and scripts/check-playwright-version.js pass.
  • actionlint v1.7.7: no new findings. It reports two SC2034 warnings
    (unused retry-loop variable) that also exist on main.

The pinned action majors ran on the deprecated Node.js 20 runtime.
Update each action to its newest major, which runs on Node.js 24. No
input that the workflows use was renamed or removed.

CI and the release smoke test installed the worker on Node.js 20, but
the Playwright base image ships Node.js 24. Use Node.js 24 so CI tests
the runtime we ship.

Add a grouped weekly Dependabot update for GitHub Actions, so the
action versions stop going stale.
@mbroton
mbroton merged commit 2e64bb4 into main Oct 19, 2026
8 checks passed
@mbroton
mbroton deleted the chore/ci-actions-node24 branch October 19, 2026 18:49
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