Squashed commit of the following:
commit 446068aff1ec25da69c5b6af6d01dd19b230b4b2
Author: Alena Sviridenko <alenasviridenko@github.com>
Date:   Tue Jun 22 17:51:35 2021 +0300
    updated headers
commit d7e254e6e9534bb627373b7e40400cc45a888815
Author: Alena Sviridenko <alenasviridenko@github.com>
Date:   Thu Jun 17 17:35:34 2021 +0300
    updated links
commit ffd9956eda8c43e846f3305bad21fa064b07280f
Author: AlyonaSviridenko <alenasviridenko@github.com>
Date:   Thu Jun 17 17:33:41 2021 +0300
    Added advanced usage
commit 1e068f031030962d380a1bae32beb806d1c6f818
Author: AlyonaSviridenko <alenasviridenko@github.com>
Date:   Thu Jun 17 15:07:42 2021 +0300
    Updated readme with caching
commit 7528c3399a9c8e0b4e63f7a079e0078af6b92d6a
Author: Maxim Lobanov <v-malob@microsoft.com>
Date:   Wed Jun 16 14:43:46 2021 +0300
    Update versions.yml
			
			
				main
			
			
		
							parent
							
								
									1088324e41
								
							
						
					
					
						commit
						f2b87bb2c2
					
				@ -0,0 +1,132 @@
 | 
				
			|||||||
 | 
					# Advanced usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Check latest version:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `check-latest` flag defaults to `false`. When set to `false`, 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/). Use the default or set `check-latest` to `false` if you prefer stability and if you want to ensure a specific version of Node.js is always used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If `check-latest` is set to `true`, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, a version of Node.js will then be downloaded. Set `check-latest` to `true` it you want the most up-to-date version of Node.js to always be used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Setting `check-latest` to `true` has performance implications as downloading versions of Node is slower than using cached versions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
 | 
					- uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    node-version: '14'
 | 
				
			||||||
 | 
					    check-latest: true
 | 
				
			||||||
 | 
					- run: npm install
 | 
				
			||||||
 | 
					- run: npm test
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Architecture:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can use any of the [supported operating systems](https://docs.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners), and the compatible `architecture` can be selected using `architecture`. Values are `x86`, `x64`, `arm64`, `armv6l`, `armv7l`, `ppc64le`, `s390x` (not all of the architectures are available on all platforms).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					When using `architecture`, `node-version` must be provided as well.
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					    runs-on: windows-latest
 | 
				
			||||||
 | 
					    name: Node sample
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          node-version: '14'
 | 
				
			||||||
 | 
					          architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default
 | 
				
			||||||
 | 
					      - run: npm install
 | 
				
			||||||
 | 
					      - run: npm test
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Multiple Operating Systems and Architectures:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os:
 | 
				
			||||||
 | 
					          - ubuntu-latest
 | 
				
			||||||
 | 
					          - macos-latest
 | 
				
			||||||
 | 
					          - windows-latest
 | 
				
			||||||
 | 
					        node_version:
 | 
				
			||||||
 | 
					          - 10
 | 
				
			||||||
 | 
					          - 12
 | 
				
			||||||
 | 
					          - 14
 | 
				
			||||||
 | 
					        architecture:
 | 
				
			||||||
 | 
					          - x64
 | 
				
			||||||
 | 
					        # an extra windows-x86 run:
 | 
				
			||||||
 | 
					        include:
 | 
				
			||||||
 | 
					          - os: windows-2016
 | 
				
			||||||
 | 
					            node_version: 12
 | 
				
			||||||
 | 
					            architecture: x86
 | 
				
			||||||
 | 
					    name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - name: Setup node
 | 
				
			||||||
 | 
					        uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          node-version: ${{ matrix.node_version }}
 | 
				
			||||||
 | 
					          architecture: ${{ matrix.architecture }}
 | 
				
			||||||
 | 
					      - run: npm install
 | 
				
			||||||
 | 
					      - run: npm test
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Publish to npmjs and GPR with npm:
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
 | 
					- uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    node-version: '14.x'
 | 
				
			||||||
 | 
					    registry-url: 'https://registry.npmjs.org'
 | 
				
			||||||
 | 
					- run: npm install
 | 
				
			||||||
 | 
					- run: npm publish
 | 
				
			||||||
 | 
					  env:
 | 
				
			||||||
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 | 
				
			||||||
 | 
					- uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					  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@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    node-version: '14.x'
 | 
				
			||||||
 | 
					    registry-url: <registry url>
 | 
				
			||||||
 | 
					- run: yarn install
 | 
				
			||||||
 | 
					- run: yarn publish
 | 
				
			||||||
 | 
					  env:
 | 
				
			||||||
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
 | 
				
			||||||
 | 
					- uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    registry-url: 'https://npm.pkg.github.com'
 | 
				
			||||||
 | 
					- run: yarn publish
 | 
				
			||||||
 | 
					  env:
 | 
				
			||||||
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Use private packages:
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
 | 
					- uses: actions/setup-node@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    node-version: '14.x'
 | 
				
			||||||
 | 
					    registry-url: 'https://registry.npmjs.org'
 | 
				
			||||||
 | 
					# Skip post-install scripts here, as a malicious
 | 
				
			||||||
 | 
					# script could steal NODE_AUTH_TOKEN.
 | 
				
			||||||
 | 
					- run: npm install --ignore-scripts
 | 
				
			||||||
 | 
					  env:
 | 
				
			||||||
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 | 
				
			||||||
 | 
					# `npm rebuild` will run all those post-install scripts for us.
 | 
				
			||||||
 | 
					- run: npm rebuild && npm run prepare --if-present
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue