setup-node/README.md

111 lines
4.0 KiB
Markdown
Raw Normal View History

2019-08-04 09:49:54 +08:00
# setup-node
2019-08-13 03:10:38 +08:00
<p align="left">
2020-05-19 21:57:20 +08:00
<a href="https://github.com/actions/setup-node/actions?query=workflow%3Abuild-test"><img alt="build-test status" src="https://github.com/actions/setup-node/workflows/build-test/badge.svg"></a> <a href="https://github.com/actions/setup-node/actions?query=workflow%3Aversions"><img alt="versions status" src="https://github.com/actions/setup-node/workflows/versions/badge.svg"></a> <a href="https://github.com/actions/setup-node/actions?query=workflow%3Aproxy"><img alt="proxy status" src="https://github.com/actions/setup-node/workflows/proxy/badge.svg"></a>
2019-08-13 03:10:38 +08:00
</p>
2021-06-25 17:06:49 +08:00
This action provides the following functionality for GitHub Actions users:
2019-08-04 09:49:54 +08:00
- Optionally downloading and caching distribution of the requested Node.js version, and adding it to the PATH
- Optionally caching npm/yarn dependencies
- Registering problem matchers for error output
- Configuring authentication for GPR or npm
2019-08-04 09:49:54 +08:00
# Usage
2020-05-19 21:57:20 +08:00
See [action.yml](action.yml)
2020-05-19 21:57:20 +08:00
**Basic:**
2020-05-19 21:57:20 +08:00
```yaml
steps:
- uses: actions/checkout@v2
2020-12-15 18:36:18 +08:00
- uses: actions/setup-node@v2
2020-05-19 21:57:20 +08:00
with:
node-version: '14'
- run: npm install
- run: npm test
2020-05-19 21:57:20 +08:00
```
2021-06-30 20:07:45 +08:00
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 system one.
2020-05-19 21:57:20 +08:00
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](https://github.com/actions/node-versions/releases) and on miss or failure will fall back to the previous behavior of downloading directly from [node dist](https://nodejs.org/dist/).
2020-05-19 21:57:20 +08:00
For information regarding locally cached versions of Node.js on GitHub hosted runners, check out [GitHub Actions Virtual Environments](https://github.com/actions/virtual-environments).
2019-08-04 09:49:54 +08:00
2021-06-30 20:07:45 +08:00
#### Supported version syntax
The `node-version` input supports the following syntax:
major versions: `12`, `14`, `16`
more specific versions: `10.15`, `14.2.0`, `16.3.0`
nvm lts syntax: `lts/erbium`, `lts/fermium`, `lts/*`
### Caching packages dependencies
The action has a built-in functionality for caching and restoring npm/yarn dependencies. Supported package managers are `npm`, `yarn`. The `cache` input is optional, and caching is turned off by default.
2019-08-04 09:49:54 +08:00
2021-06-30 20:07:45 +08:00
**Caching npm dependencies:**
2019-08-04 09:49:54 +08:00
```yaml
steps:
- uses: actions/checkout@v2
2020-12-15 18:36:18 +08:00
- uses: actions/setup-node@v2
2019-08-04 09:49:54 +08:00
with:
node-version: '14'
cache: 'npm'
2019-08-04 09:49:54 +08:00
- run: npm install
- run: npm test
```
**Caching yarn dependencies:**
```yaml
steps:
- uses: actions/checkout@v2
2020-12-15 18:36:18 +08:00
- uses: actions/setup-node@v2
with:
node-version: '14'
cache: 'yarn'
2021-06-30 15:39:46 +08:00
- run: yarn install
- run: yarn test
```
Yarn caching handles both yarn versions: 1 or 2.
> At the moment, only `lock` files in the project root are supported.
### Matrix Testing:
2019-08-04 09:49:54 +08:00
```yaml
jobs:
build:
runs-on: ubuntu-latest
2019-08-04 09:49:54 +08:00
strategy:
matrix:
2021-06-30 20:07:45 +08:00
node: [ '12', '14', '16' ]
2019-08-04 09:49:54 +08:00
name: Node ${{ matrix.node }} sample
steps:
- uses: actions/checkout@v2
2019-08-04 09:49:54 +08:00
- name: Setup node
2020-12-15 18:36:18 +08:00
uses: actions/setup-node@v2
2019-08-04 09:49:54 +08:00
with:
node-version: ${{ matrix.node }}
2019-08-04 09:49:54 +08:00
- run: npm install
- run: npm test
```
## Advanced usage
1. [Check latest version](docs/advanced-usage.md#check-latest-version)
2. [Using different architectures](docs/advanced-usage.md#architecture)
3. [Using multiple operating systems and architectures](docs/advanced-usage.md#multiple-operating-systems-and-architectures)
4. [Publishing to npmjs and GPR with npm](docs/advanced-usage.md#publish-to-npmjs-and-gpr-with-npm)
5. [Publishing to npmjs and GPR with yarn](docs/advanced-usage.md#publish-to-npmjs-and-gpr-with-yarn)
6. [Using private packages](docs/advanced-usage.md#use-private-packages)
2019-08-04 09:49:54 +08:00
# License
The scripts and documentation in this project are released under the [MIT License](LICENSE)
# Contributions
Contributions are welcome! See [Contributor's Guide](docs/contributors.md)
2020-04-17 06:43:02 +08:00
## Code of Conduct
:wave: Be nice. See [our code of conduct](CONDUCT)