Skip to content

feat: bump actions/runner to v2.333.1 for node24 support#3

Merged
kurok merged 3 commits intofeat/al2023-supportfrom
feat/bump-runner-2.333.1
Apr 20, 2026
Merged

feat: bump actions/runner to v2.333.1 for node24 support#3
kurok merged 3 commits intofeat/al2023-supportfrom
feat/bump-runner-2.333.1

Conversation

@kurok
Copy link
Copy Markdown

@kurok kurok commented Apr 20, 2026

Summary

Bump the hardcoded actions/runner release downloaded by the EC2 user-data bootstrap from v2.321.0 to v2.333.1 (latest stable, published 2026-03-27).

Changes:

  • src/aws.js — the two download/extract lines
  • dist/index.js — rebuilt via NODE_OPTIONS=--openssl-legacy-provider npm run package (pinned @vercel/ncc 0.25.1 needs the flag on modern OpenSSL)

Why

Downstream consumers (e.g. namecheap/terraform-provider-namecheap) are constrained to actions/checkout@v4 on any job that runs on runners started via this action. @v5 and @v6 both declare runs: using: node24, and the runner v2.321.0 shipped here bundles only externals/node20, so the JS action fails to start.

The terraform-provider-namecheap ci.yml even documents this inline:

- uses: actions/checkout@v4 # pinned to v4 (node20) — self-hosted EC2 runner doesn't support node24 yet

The comment is accurate about the symptom but misdirects on the cause — the AMI itself is fine. The runner binary is what determines which node versions are available to JS actions, because the runner loads them from its own externals/ directory, not from the host. v2.327.1+ adds externals/node24; v2.333.1 is the current stable.

Consumer action after merge

Once this is merged and feat/al2023-support tip advances, consumers SHA-pinned to this action rotate the pin to the new commit. For the provider repo that's the ci.yml lines already SHA-pinned in namecheap/terraform-provider-namecheap#149; the same PR (or a small follow-up) can then drop the actions/checkout@v4 workaround on the acceptance step and unify on @v6.

Verification

  • src/aws.js and dist/index.js agree on the version string (grep shows 2 matches of 2.333.1, 0 of 2.321.0).
  • No other changes in dist/ — verified with git diff --numstat dist/index.js2 2.
  • https://github.com/actions/runner/releases/tag/v2.333.1 confirms the asset URL and checksum scheme used in the bootstrap.

Follow-ups

The user-data bootstrap hardcoded v2.321.0, whose externals/ directory
ships only node16 and node20. Any consumer trying to use a JS action
that declares 'runs: using: node24' (actions/checkout@v5+, many other
updated actions) fails on runners started via this action.

v2.333.1 is the current stable GA runner release (2026-03-27) and
bundles externals/node20 + externals/node24. No AMI change is needed
because the runner brings its own Node binaries.

Rebuilt dist/index.js with NODE_OPTIONS=--openssl-legacy-provider
npm run package (the pinned @vercel/ncc 0.25.1 doesn't work with
modern OpenSSL without that flag). The only diff inside dist/ is the
two URL/filename lines that mirror the src change.

Signed-off-by: yuriyryabikov <22548029+kurok@users.noreply.github.com>
kurok added 2 commits April 20, 2026 15:04
The existing pr.yml only ran 'npm run lint' and only on PRs targeting
main, so PRs against feature branches had zero CI coverage.

Two new jobs:

- verify-dist: runs 'npm run package' and fails if the committed
  dist/index.js disagrees with a fresh rebuild from src/. Catches
  the 'forgot to rebuild dist' class of bug permanently so future
  runner-version bumps can't ship with a stale bundle.

- verify-runner-url: extracts the pinned actions/runner version
  from src/aws.js and HEADs the corresponding release asset. Catches
  typos in the version string and release-asset naming drift before
  a bad AMI start wastes an EC2 lifecycle.

Also drops the 'branches: [main]' filter so PRs against any branch
(feat/al2023-support in particular) get linted and verified. The
existing lint-code job is left untouched to keep the diff minimal.

Signed-off-by: yuriyryabikov <22548029+kurok@users.noreply.github.com>
…code

GitHub started auto-failing workflows using actions/cache@v2 in
December 2025 (deprecation notice). actions/checkout@v2 is in the
same bucket. With this PR removing the 'branches: [main]' filter on
pr.yml, the lint-code job now runs on every PR — so the red-flag
deprecation caught by the runner causes every new PR to fail until
these two pins are rotated forward.

Minimal change: v2 → v4 on both uses: lines; everything else in the
job stays the same.

Signed-off-by: yuriyryabikov <22548029+kurok@users.noreply.github.com>
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