ci: bump setup-node to v4 and Node to 20 in release.yml
- Dominant language
- JavaScript
- Stars
- 5.3k
- Forks
- 382
- Avg merge
- 7m
- Merged PRs (30d)
- 4
Description
## Description
`.github/workflows/release.yml` still pins `actions/setup-node@v3` with `node-version: 18`. Both are behind the rest of the repo and carry real costs:
- `actions/setup-node@v3` depends on the Node 16 Actions runtime, which GitHub has deprecated. `@v4` runs on Node 20.
- Node.js 18 reached end-of-life on 2025-04-30 and no longer receives security updates. Node 20 is Active LTS.
- This is the workflow that runs `semantic-release` to cut every spec release, so the toolchain it runs on is particularly sensitive.
Sister workflows in this repo already use the modern versions:
- `.github/workflows/validate-examples.yml` — `setup-node@v4`, `node-version: '20'`
- `.github/workflows/validate-embedded-examples.yml` — `setup-node@v4`, `node-version: '20'`
This issue tracks aligning `release.yml` with them.
## Proposed change
In `.github/workflows/release.yml`:
- `actions/setup-node@v3` → `actions/setup-node@v4`
- `node-version: 18` → `node-version: 20`
`semantic-release@21.0.7` (the version pinned in the workflow) and `conventional-changelog-conventionalcommits@6.1.0` both support Node 20, so this is a drop-in bump.
## Scope
- 2 line edits in 1 file. No other workflow or script touched.
- Complements #1195 (checkout v3 -> v4) and #1197 (github-script v6 -> v7), finishing the move of the local workflows off deprecated Actions runtimes.
Contributor guide
Research direction
Open .github/workflows/release.yml and compare its setup-node step with .github/workflows/validate-examples.yml and .github/workflows/validate-embedded-examples.yml. Update the two specified version lines, then verify that release.yml uses setup-node@v4 with Node 20 and that no other files change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, javascript, node.js
- Domain
- ci-cd, release
- Issue type
- Refactor
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 94/100