2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# setup-node
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-12 15:10:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< p  align = "left" >  
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04: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-12 15:10:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-25 12:06:49 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This action provides the following functionality for GitHub Actions users:
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Optionally downloading and caching distribution of the requested Node.js version, and adding it to the PATH 
						 
					
						
							
								
									
										
										
										
											2021-06-30 16:44:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Optionally caching npm/pnpm/yarn dependencies 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Registering problem matchers for error output 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Configuring authentication for GPR or npm 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Usage
  
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								See [action.yml ](action.yml )
							 
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Basic:**
							 
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								steps:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  uses: actions/checkout@v2  
						 
					
						
							
								
									
										
										
										
											2020-12-15 13:36:18 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/setup-node@v2  
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
									
										
										
										
											2021-02-24 05:21:23 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    node-version: '14'
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  run: npm install 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  run: npm test 
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 15:12:34 +03: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 the system one.  
							 
						 
					
						
							
								
									
										
										
										
											2020-05-19 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03: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 09:57:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03: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-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 15:07:45 +03: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/*`   
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Caching packages dependencies
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 16:44:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The action has a built-in functionality for caching and restoring npm/yarn dependencies. Supported package managers are `npm` , `pnpm` , `yarn` . The `cache`  input is optional, and caching is turned off by default.
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 15:07:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Caching npm dependencies:**
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-02-06 14:52:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/checkout@v2  
						 
					
						
							
								
									
										
										
										
											2020-12-15 13:36:18 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/setup-node@v2  
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
									
										
										
										
											2021-02-24 05:21:23 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    node-version: '14'
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    cache: 'npm'
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-  run: npm install 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  run: npm test 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 16:44:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Caching pnpm dependencies:**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
									
										
										
										
											2021-07-14 13:03:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# This workflow uses actions that are not certified by GitHub.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# They are provided by a third-party and are governed by
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# separate terms of service, privacy policy, and support
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# documentation.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 16:44:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								steps:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  uses: actions/checkout@v2  
						 
					
						
							
								
									
										
										
										
											2021-07-14 13:03:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2  
						 
					
						
							
								
									
										
										
										
											2021-06-30 16:44:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    version: 6.9.0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  uses: actions/setup-node@v2  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    node-version: '14'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    cache: 'pnpm'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  run: pnpm install 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  run: pnpm test 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Caching yarn dependencies:**
							 
						 
					
						
							
								
									
										
										
										
											2020-06-29 21:56:37 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								steps:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  uses: actions/checkout@v2  
						 
					
						
							
								
									
										
										
										
											2020-12-15 13:36:18 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  uses: actions/setup-node@v2  
						 
					
						
							
								
									
										
										
										
											2020-06-29 21:56:37 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  with:
							 
						 
					
						
							
								
									
										
										
										
											2021-02-24 05:21:23 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    node-version: '14'
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    cache: 'yarn'
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 10:39:46 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  run: yarn install 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  run: yarn test 
						 
					
						
							
								
									
										
										
										
											2020-06-29 21:56:37 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Yarn caching handles both yarn versions: 1 or 2. 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-29 21:56:37 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								>  At the moment, only `lock` files in the project root are supported.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Matrix Testing:
  
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jobs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  build:
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    runs-on: ubuntu-latest
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    strategy:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      matrix:
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 15:07:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        node: [ '12', '14', '16' ]
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    name: Node ${{ matrix.node }} sample
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    steps:
							 
						 
					
						
							
								
									
										
										
										
											2020-02-06 14:52:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      -  uses: actions/checkout@v2 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      -  name: Setup node
							 
						 
					
						
							
								
									
										
										
										
											2020-12-15 13:36:18 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        uses: actions/setup-node@v2 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        with:
							 
						 
					
						
							
								
									
										
										
										
											2019-08-13 16:32:09 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          node-version: ${{ matrix.node }}
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      -  run: npm install
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  run: npm test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2021-06-22 18:32:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## 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-09-10 13:32:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-03 21:49:54 -04: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-16 18:43:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Code of Conduct
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:wave: Be nice.  See [our code of conduct ](CONDUCT )