actions/Setup Node.js environment
Setup a Node.js environment by adding problem matchers and optionally downloading and adding it to the PATH.
View on GitHubTrust Signals
- Scorecard Score
- Scorecard 6–8scored Jul 13, 2026
- Maintenance Recency
- Activelast commit Jul 7, 2026
- License
- MIT
Pinned Snippet
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| node-version | Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. | — | — |
| node-version-file | File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions. | — | — |
| architecture | Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. | — | — |
| check-latest | Set this option if you want the action to check for the latest available version that satisfies the version spec. | — | false |
| registry-url | Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. | — | — |
| scope | Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). | — | — |
| token | Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. | — | ${{ github.server_url == 'https://github.com' && github.token || '' }} |
| cache | Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. | — | — |
| package-manager-cache | Set to false to disable automatic caching. By default, caching is enabled when either devEngines.packageManager or the top-level packageManager field in package.json specifies npm as the package manager. | — | true |
| cache-dependency-path | Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. | — | — |
| mirror | Used to specify an alternative mirror to download Node.js binaries from | — | — |
| mirror-token | The token used as Authorization header when fetching from the mirror | — | — |
Outputs
| name | description |
|---|---|
| cache-hit | A boolean value to indicate if a cache was hit. |
| cache-primary-key | The key used to restore and save the cache. |
| cache-matched-key | The key of the cache that was restored. Empty when no cache is found. |
| node-version | The installed node version. |