Set up your GitHub Actions workflow with a specific version of node.js
4.9k
Stars
1.7k
Forks
102
Open issues
30
Contributors
AI Analysis
setup-node is a GitHub Actions action that configures Node.js in CI/CD workflows, providing version management, dependency caching, and npm registry authentication. It is essential infrastructure for JavaScript/Node.js projects using GitHub Actions, serving developers who need reliable Node.js setup automation in their CI pipelines.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Official GitHub Actions setup for Node.js: ubiquitous CI/CD dependency management with automatic package caching
setup-node is GitHub's first-party action for provisioning Node.js in CI/CD pipelines. It handles version selection, PATH management, dependency caching (npm/yarn/pnpm), registry authentication, and problem matcher registration. Used implicitly or explicitly in millions of GitHub Actions workflows; de facto standard for Node.js CI on GitHub. Not competing with any tool—it is the platform integration point.
Created May 2019 as part of GitHub's official actions ecosystem. Evolved from basic Node.js download/setup into a comprehensive dependency management layer, with major versioning reflecting breaking changes in caching behavior and Node.js runtime upgrades (V5 moved to node24, V6 refined npm auto-caching logic).
Star growth is flat (3 stars in last 7 days) because adoption is saturated among GitHub Actions users—it is the de facto tool, not one among many. Steady maintenance and feature refinement (breaking changes in V5 and V6 show active development, not stagnation). Growth measured in ecosystem integration depth, not star count.
Adoption not formally documented in README, but GitHub's official actions are automatically discoverable and featured in GitHub Actions marketplace. Likely used in millions of workflows given ubiquity of Node.js CI and GitHub Actions dominance. Implicit adoption through GitHub's templates and documentation.
Appears to be a composite action or TypeScript-based action that downloads Node.js distributions, manages caching via GitHub Actions cache API, and registers problem matchers. Based on README, it supports version resolution (SemVer, aliases like lts/*, nightly), package manager detection from package.json, and auth token management for private registries. Likely uses actions/tool-cache or similar for binary management.
README documents multiple CI workflows (basic-validation, versions, e2e-cache, proxy) with passing badges, indicating automated test coverage across version resolution, caching, and proxy scenarios. Actual coverage depth not quantified in README.
Last push 2026-06-24 (9 days before analysis date). Active maintenance confirmed. V6 released with breaking changes, indicating ongoing feature iteration. Multiple workflow badges suggest continuous integration and testing infrastructure is in place and passing.
ADOPT IF: you use GitHub Actions and Node.js. This is the official, maintained integration—attempting to substitute it introduces friction. AVOID IF: you use non-GitHub CI (GitLab CI, Jenkins, CircleCI) and expect a first-party equivalent—other platforms have their own or you use generic approaches. MONITOR IF: you rely on private registry authentication or enterprise GitHub Server—breaking changes (V5, V6) may require workflow updates; test in staging first.
Independent dimensions
Mainstream potential
10/10
Technical importance
8/10
Adoption evidence
9/10
- Breaking changes between major versions (V5→V6 changed caching defaults and removed always-auth) require explicit workflow updates; automation not always obvious from docs.
- Dependency on GitHub Actions runner version (V5 requires runner >=v2.327.1); mismatched versions may fail silently or with unclear errors.
- Automatic npm caching enabled by default in V6 (if packageManager field present); may expose sensitive deps in cache artifacts if not carefully managed on enterprise runners.
- Version resolution relies on external node-versions repository; if that becomes stale or unavailable, version discovery may fail.
- No documented fallback for air-gapped or severely rate-limited environments beyond custom mirror support.
Continued steady maintenance as part of GitHub's official actions. Unlikely to see dramatic feature expansion; main evolution will track Node.js LTS cycles and GitHub Actions runtime upgrades. May deprecate features (like always-auth removal) as Node.js itself evolves.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- TypeScript
- License
- MIT
- Last updated
- 2d ago
- Created
- 87mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
ReDoS vulnerabilities found in @actions/glob
setup-node silently falls through to runner-baked Node on download/extract failure
Sporadic silent failure when downloading Node.js
`npm config get cache` fails with `EBADDEVENGINES` when requiring newer npm versions in `devEngines`
Top contributors
Recent releases
Similar repos
actions/setup-python
setup-python is a GitHub Actions workflow action that configures Python, PyPy,...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
4.9k | +13 | TypeScript | 9/10 | 2d ago |
|
|
2.2k | — | TypeScript | 9/10 | 2w ago |
|
|
1.7k | — | TypeScript | 8/10 | 2w ago |
|
|
2k | — | TypeScript | 8/10 | 12h ago |
|
|
1.2k | — | TypeScript | 8/10 | 2w ago |
|
|
1.2k | — | JavaScript | 8/10 | 3w ago |
Sibling official action (1716 stars). Same architectural role for Go. Comparable maintenance profile and ecosystem positioning.
Sibling official action (2172 stars). Higher star count reflects Python's broader user base, not superior tooling. Both are first-party, not competitive.
Desktop Node.js version managers. Serve different use case (local dev vs. CI). Not substitutes; often used together (devs use nvm locally, CI uses setup-node).
Alternative Node.js version manager with built-in reproducibility. Primarily for local dev; no GitHub Actions integration mentioned. Orthogonal, not competitive.