steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm ci
- run: npm test
The node-version input is optional. If not supplied, the node version from PATH will be used. However, it is recommended to always specify Node.js version and don’t rely on the system one.
The action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Node.js. It will pull LTS versions from node-versions releases and on miss or failure will fall back to the previous behavior of downloading directly from node dist.
For information regarding locally cached versions of Node.js on GitHub hosted runners, check out GitHub Actions Runner Images.
Supported version syntax
The node-version input supports the Semantic Versioning Specification, for more detailed examples please refer to the documentation.
current/latest/node always resolve to the latest dist version.
That version is then downloaded from actions/node-versions if possible, or directly from Node.js if not.
Since it will not be cached always, there is possibility of hitting rate limit when downloading from dist
Checking in lockfiles
It’s always recommended to commit the lockfile of your package manager for security and performance reasons. For more information consult the “Working with lockfiles” section of the Advanced usage guide.
Caching global packages data
The action has a built-in functionality for caching and restoring dependencies. It uses actions/cache under the hood for caching global packages data but requires less configuration settings. Supported package managers are npm, yarn, pnpm (v6.10+). The cache input is optional, and caching is turned off by default.
The action defaults to search for the dependency file (package-lock.json, npm-shrinkwrap.json or yarn.lock) in the repository root, and uses its hash as a part of the cache key. Use cache-dependency-path for cases when multiple dependency files are used, or they are located in different subdirectories.
Note: The action does not cache node_modules
See the examples of using cache for yarn/pnpm and cache-dependency-path input in the Advanced usage guide.
Caching npm dependencies:
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
cache: 'npm'
- run: npm ci
- run: npm test
setup-node
This action provides the following functionality for GitHub Actions users:
Usage
See action.yml
Basic:
The
node-version
input is optional. If not supplied, the node version from PATH will be used. However, it is recommended to always specify Node.js version and don’t rely on the system one.The action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Node.js. It will pull LTS versions from node-versions releases and on miss or failure will fall back to the previous behavior of downloading directly from node dist.
For information regarding locally cached versions of Node.js on GitHub hosted runners, check out GitHub Actions Runner Images.
Supported version syntax
The
node-version
input supports the Semantic Versioning Specification, for more detailed examples please refer to the documentation.Examples:
14
,16
,18
10.15
,16.15.1
,18.4.0
lts/erbium
,lts/fermium
,lts/*
,lts/-n
*
orlatest
/current
/node
Note: Like the other values,
*
will get the latest locally-cached Node.js version, or the latest version from actions/node-versions, depending on thecheck-latest
input.current
/latest
/node
always resolve to the latest dist version. That version is then downloaded from actions/node-versions if possible, or directly from Node.js if not. Since it will not be cached always, there is possibility of hitting rate limit when downloading from distChecking in lockfiles
It’s always recommended to commit the lockfile of your package manager for security and performance reasons. For more information consult the “Working with lockfiles” section of the Advanced usage guide.
Caching global packages data
The action has a built-in functionality for caching and restoring dependencies. It uses actions/cache under the hood for caching global packages data but requires less configuration settings. Supported package managers are
npm
,yarn
,pnpm
(v6.10+). Thecache
input is optional, and caching is turned off by default.The action defaults to search for the dependency file (
package-lock.json
,npm-shrinkwrap.json
oryarn.lock
) in the repository root, and uses its hash as a part of the cache key. Usecache-dependency-path
for cases when multiple dependency files are used, or they are located in different subdirectories.Note: The action does not cache
node_modules
See the examples of using cache for
yarn
/pnpm
andcache-dependency-path
input in the Advanced usage guide.Caching npm dependencies:
Caching npm dependencies in monorepos:
Matrix Testing
Advanced usage
License
The scripts and documentation in this project are released under the MIT License
Contributions
Contributions are welcome! See Contributor’s Guide
Code of Conduct