# setup-node
This action sets by node environment for use in actions by: - optionally downloading and caching a version of node - npm by version spec and add to PATH - registering problem matchers for error output - configuring authentication for GPR or npm # v2-beta A beta release which adds reliability for pulling node distributions from a cache of node releases is available by referencing the `v2-beta` tag. ```yaml steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2-beta with: node-version: '12' ``` It will first check the local cache for a semver match. The hosted images have been updated with the latest of each LTS from v8, v10, v12, and v14. `self-hosted` machines will benefit from the cache as well only downloading once. It will pull LTS versions from [node-versions releases](https://github.com/actions/node-versions/releases) and on miss or failure, it will fall back to the previous behavior of download directly from [node dist](https://nodejs.org/dist/). The `node-version` input is optional. If not supplied, node which is in your PATH will be used. However, this action will still register problem matchers and support auth features. So setting up the node environment is still a valid scenario without downloading and caching versions. # Usage See [action.yml](action.yml) Basic: ```yaml steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: '12' - run: npm install - run: npm test ``` Matrix Testing: ```yaml jobs: build: runs-on: ubuntu-16.04 strategy: matrix: node: [ '10', '12' ] name: Node ${{ matrix.node }} sample steps: - uses: actions/checkout@v2 - name: Setup node uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - run: npm install - run: npm test ``` Publish to npmjs and GPR with npm: ```yaml steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: '10.x' registry-url: 'https://registry.npmjs.org' - run: npm install - run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - uses: actions/setup-node@v1 with: registry-url: 'https://npm.pkg.github.com' - run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` Publish to npmjs and GPR with yarn: ```yaml steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: '10.x' registry-url: