ci: update node version#230
Conversation
| runs-on: self-hosted | ||
| container: | ||
| image: node:20 | ||
| image: node:24 |
There was a problem hiding this comment.
Reliability concern: node:24 is a non-LTS (Current) release line. For production CI/CD workflows, it's recommended to use an LTS version (e.g., node:22 which should be the Active LTS around this time). Non-LTS releases have shorter support windows and may receive breaking changes more frequently.
Additionally, consider pinning to a more specific version tag (e.g., node:24.x.y) rather than just the major version to ensure reproducible builds. The node:24 tag will silently update on every minor/patch release, which could cause unexpected build failures.
Suggestion:
| image: node:24 | |
| image: node:22 |
| runs-on: self-hosted | ||
| container: | ||
| image: node:20 | ||
| image: node:24 |
There was a problem hiding this comment.
Container image tag precision: Using a bare major version tag (node:24) means the underlying image can change silently when new minor/patch releases are published, potentially introducing breaking changes or inconsistencies between runs. Consider pinning to a specific minor or patch version (e.g., node:24.1 or node:24.1.0) for more reproducible builds, especially on self-hosted runners where image caching behavior may vary.
| runs-on: self-hosted | ||
| container: | ||
| image: node:20 | ||
| image: node:24 |
There was a problem hiding this comment.
Potential stability concern: Node.js 24 is likely still in "Current" (non-LTS) status as of now. For a release/publish workflow, using a non-LTS Node version may introduce unexpected breaking changes or instability. Consider using node:22 (the active LTS) instead, or if Node 24 is specifically required, pin to a specific minor version (e.g., node:24.1) to ensure reproducible builds.
Also note that this same change is applied consistently across deploy-pages.yml and ocr-review.yml, so any compatibility issue will affect all three workflows.
lizhengfeng101
left a comment
There was a problem hiding this comment.
Review: ci: update node version
Changes: Updates Node.js container image from node:20 to node:24 across all three GitHub Actions workflows (deploy-pages.yml, ocr-review.yml, release.yml). Also removes an outdated trigger comment in ocr-review.yml.
Findings
Non-blocking suggestions:
-
Consider pinning to a specific minor version (e.g.,
node:24.1) instead of the rollingnode:24tag. Rolling tags can introduce unexpected behavior when a new patch is published, which may affect build reproducibility. -
Node 24 is currently in "Current" status, not LTS. LTS is scheduled for October 2025. This is generally fine for CI usage, but worth noting — if any dependencies rely on native addons, there may be compatibility surprises down the road.
Verdict
Clean, straightforward change. All node:20 references in workflows are covered — no missed spots. The outdated comment removal in ocr-review.yml is a nice cleanup.
LGTM ✅ — good to merge.
Description
Update Node version used by Github Actions to 24.
Type of Change
How Has This Been Tested?
make testpasses locallyRunning local build for package tarball and pages to check that node 24 is compatible.
Checklist
go fmt,go vet)Related Issues