Skip to content

chore: update action runtime to Node 24#70

Merged
JakeTowers merged 3 commits into
phoenix-actions:mainfrom
stephen-BT:chore/update-to-node24
May 1, 2026
Merged

chore: update action runtime to Node 24#70
JakeTowers merged 3 commits into
phoenix-actions:mainfrom
stephen-BT:chore/update-to-node24

Conversation

@stephen-BT
Copy link
Copy Markdown
Contributor

@stephen-BT stephen-BT commented Apr 30, 2026

Summary

Updates the action to Node 24 ahead of the Node 20 deprecation in GitHub Actions runners (June 2026), and resolves all outstanding npm audit vulnerabilities along the way.

Closes #69

Changes

  • action.yml: runs.using node20node24
  • tsconfig.json: target / lib ES2019ES2022 (Node 24 supports it natively; smaller, more readable bundle)
  • @types/node: ^18^24
  • @actions/core: ^1.10.1^2.0.3 (last CJS-compatible major; pulls patched undici@6.x via @actions/http-client@3)
  • @actions/github: ^6.0.0^8.0.1 (last CJS-compatible major; pulls patched undici@6.x)
  • xml2js: ^0.4.23^0.6.2 — prototype pollution fix
  • jest-junit: ^16^17 — picks up patched uuid
  • Transitive npm audit fix: babel, octokit-*, ajv, brace-expansion, braces, cross-spawn, flatted, js-yaml, micromatch, minimatch, picomatch
  • src/utils/github-utils.ts: removed redundant as string cast that the new octokit types make unnecessary
  • dist/: rebuilt via npm run package

Result

  • npm audit: 20 vulnerabilities → 0
  • npm run build, npm run lint, npm run format-check: pass
  • npm test: 29/29 pass

Note on @actions/core@3 / @actions/github@9

Both went ESM-only, which would require converting the whole project to ESM (changing package.json type, adding .js extensions to all relative imports, reworking the jest config, etc.). I deliberately stopped at the last CJS-compatible majors (v2 and v8) which still patch the underlying undici advisories. Happy to do the ESM migration in a follow-up PR if you'd prefer that direction.

Test plan

  • npm install produces 0 vulnerabilities
  • npm run build passes
  • npm run lint passes
  • npm run format-check passes
  • npm test — all 29 tests pass with snapshots intact
  • npm run package regenerates dist/
    🤖 Generated with Claude Code

@stephen-BT
Copy link
Copy Markdown
Contributor Author

@IanMoroney Can you approve the workflows pelase.

@JakeTowers JakeTowers force-pushed the chore/update-to-node24 branch 2 times, most recently from 8884d4c to 30201b1 Compare May 1, 2026 21:58
stephen-BT and others added 2 commits May 1, 2026 23:01
Updates the action to Node 24 to address the upcoming Node 20
deprecation in GitHub Actions runners (June 2026).

- action.yml: runs.using node20 -> node24
- @types/node: ^18 -> ^24
- tsconfig: target/lib ES2019 -> ES2022
- @actions/core: ^1.10.1 -> ^2.0.3 (CJS-compatible, patched undici)
- @actions/github: ^6.0.0 -> ^8.0.1 (CJS-compatible, patched undici)
- xml2js: ^0.4.23 -> ^0.6.2 (prototype pollution fix)
- jest-junit: ^16 -> ^17 (uuid bounds-check fix)
- npm audit fix for transitive vulns (babel, octokit, ajv,
  brace-expansion, braces, cross-spawn, flatted, js-yaml,
  micromatch, minimatch, picomatch)

Result: 20 -> 0 npm audit vulnerabilities. Build, lint, format,
and the existing 29-test suite all pass. dist/ rebuilt via ncc.

Did not bump @actions/core@3 / @actions/github@9 (both ESM-only),
which would require converting the project to ESM.

Closes phoenix-actions#69

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@JakeTowers JakeTowers force-pushed the chore/update-to-node24 branch from 30201b1 to 4c0270b Compare May 1, 2026 22:01
@JakeTowers JakeTowers merged commit 7317eea into phoenix-actions:main May 1, 2026
3 of 4 checks passed
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.

Update to Node 24

2 participants