mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-10-29 15:52:42 +08:00 
			
		
		
		
	Compare commits
	
		
			33 Commits
		
	
	
		
			v3.3.0
			...
			tiwarishub
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d4989cba2f | ||
| 
						 | 
					c59451a53b | ||
| 
						 | 
					e7cd373485 | ||
| 
						 | 
					59088c2a15 | ||
| 
						 | 
					09ba51f18e | ||
| 
						 | 
					b3ca1ac971 | ||
| 
						 | 
					78faa555e1 | ||
| 
						 | 
					0f15a51ed6 | ||
| 
						 | 
					460f88643a | ||
| 
						 | 
					d8b0944270 | ||
| 
						 | 
					0ad06209dd | ||
| 
						 | 
					adeb189fd8 | ||
| 
						 | 
					0d7418813c | ||
| 
						 | 
					3ac35dad40 | ||
| 
						 | 
					7d610f0c26 | ||
| 
						 | 
					bcb9f31327 | ||
| 
						 | 
					73ea510762 | ||
| 
						 | 
					eaead3517c | ||
| 
						 | 
					24301fe9fb | ||
| 
						 | 
					63d5b78043 | ||
| 
						 | 
					2ad69f7464 | ||
| 
						 | 
					847eaae378 | ||
| 
						 | 
					db3ddb5ef4 | ||
| 
						 | 
					9185654d72 | ||
| 
						 | 
					60b802d0e8 | ||
| 
						 | 
					2b1e32b119 | ||
| 
						 | 
					60ad0741c0 | ||
| 
						 | 
					11c7f932ce | ||
| 
						 | 
					f1702f8f38 | ||
| 
						 | 
					1196f2ae1b | ||
| 
						 | 
					c22fc3c628 | ||
| 
						 | 
					cdcc53e14f | ||
| 
						 | 
					b287e177c9 | 
							
								
								
									
										2
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: "@actions/cache"
 | 
					name: "@actions/cache"
 | 
				
			||||||
version: 2.0.2
 | 
					version: 3.0.0
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: Actions cache lib
 | 
					summary: Actions cache lib
 | 
				
			||||||
homepage: https://github.com/actions/toolkit/tree/main/packages/cache
 | 
					homepage: https://github.com/actions/toolkit/tree/main/packages/cache
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								.licenses/npm/@actions/http-client-2.0.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.licenses/npm/@actions/http-client-2.0.1.dep.yml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: "@actions/http-client"
 | 
				
			||||||
 | 
					version: 2.0.1
 | 
				
			||||||
 | 
					type: npm
 | 
				
			||||||
 | 
					summary: Actions Http Client
 | 
				
			||||||
 | 
					homepage: https://github.com/actions/toolkit/tree/main/packages/http-client
 | 
				
			||||||
 | 
					license: mit
 | 
				
			||||||
 | 
					licenses:
 | 
				
			||||||
 | 
					- sources: LICENSE
 | 
				
			||||||
 | 
					  text: |
 | 
				
			||||||
 | 
					    Actions Http Client for Node.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Copyright (c) GitHub, Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
 | 
				
			||||||
 | 
					    associated documentation files (the "Software"), to deal in the Software without restriction,
 | 
				
			||||||
 | 
					    including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
				
			||||||
 | 
					    and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
 | 
				
			||||||
 | 
					    subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 | 
				
			||||||
 | 
					    LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 | 
				
			||||||
 | 
					    NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 | 
				
			||||||
 | 
					    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 | 
				
			||||||
 | 
					    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 | 
					notices: []
 | 
				
			||||||
							
								
								
									
										26
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								README.md
									
									
									
									
									
								
							@@ -22,7 +22,7 @@ steps:
 | 
				
			|||||||
- uses: actions/checkout@v3
 | 
					- uses: actions/checkout@v3
 | 
				
			||||||
- uses: actions/setup-node@v3
 | 
					- uses: actions/setup-node@v3
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 14
 | 
					    node-version: 16
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm test
 | 
					- run: npm test
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -35,14 +35,20 @@ For information regarding locally cached versions of Node.js on GitHub hosted ru
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### Supported version syntax
 | 
					### Supported version syntax
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The `node-version` input supports the following values:
 | 
					The `node-version` input supports the Semantic Versioning Specification, for more detailed examples please refer to the [documentation](https://github.com/npm/node-semver).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - Major versions: `12`, `14`, `16`
 | 
					Examples:
 | 
				
			||||||
 - More specific versions: `10.15`, `14.2.0`, `16.3.0`
 | 
					
 | 
				
			||||||
 | 
					 - Major versions: `14`, `16`, `18`
 | 
				
			||||||
 | 
					 - More specific versions: `10.15`, `16.15.1` , `18.4.0`
 | 
				
			||||||
 - NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
 | 
					 - NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
 | 
				
			||||||
 - Latest release: `latest`/`current`/`node`
 | 
					 - Latest release: `*` or `latest`/`current`/`node`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Note:** Since the latest release will not be cached always, there is possibility of hitting rate limit when downloading from dist
 | 
					**Note:** Like the other values, `*` will get the latest [locally-cached Node.js version](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md#nodejs), or the latest version from [actions/node-versions](https://github.com/actions/node-versions/blob/main/versions-manifest.json), depending on the [`check-latest`](docs/advanced-usage.md#check-latest-version) input.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`current`/`latest`/`node` always resolve to the latest [dist version](https://nodejs.org/dist/index.json).
 | 
				
			||||||
 | 
					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
 | 
					### Checking in lockfiles
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -52,7 +58,7 @@ It's **always** recommended to commit the lockfile of your package manager for s
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/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 has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/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` 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.
 | 
					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`
 | 
					**Note:** The action does not cache `node_modules`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -65,7 +71,7 @@ steps:
 | 
				
			|||||||
- uses: actions/checkout@v3
 | 
					- uses: actions/checkout@v3
 | 
				
			||||||
- uses: actions/setup-node@v3
 | 
					- uses: actions/setup-node@v3
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 14
 | 
					    node-version: 16
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
- run: npm test
 | 
					- run: npm test
 | 
				
			||||||
@@ -78,7 +84,7 @@ steps:
 | 
				
			|||||||
- uses: actions/checkout@v3
 | 
					- uses: actions/checkout@v3
 | 
				
			||||||
- uses: actions/setup-node@v3
 | 
					- uses: actions/setup-node@v3
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 14
 | 
					    node-version: 16
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
    cache-dependency-path: subdir/package-lock.json
 | 
					    cache-dependency-path: subdir/package-lock.json
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
@@ -93,7 +99,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        node: [ 12, 14, 16 ]
 | 
					        node: [ 14, 16, 18 ]
 | 
				
			||||||
    name: Node ${{ matrix.node }} sample
 | 
					    name: Node ${{ matrix.node }} sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v3
 | 
					      - uses: actions/checkout@v3
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -294,6 +294,63 @@ describe('run', () => {
 | 
				
			|||||||
      );
 | 
					      );
 | 
				
			||||||
      expect(setFailedSpy).not.toHaveBeenCalled();
 | 
					      expect(setFailedSpy).not.toHaveBeenCalled();
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('save with -1 cacheId, should not fail workflow', async () => {
 | 
				
			||||||
 | 
					      inputs['cache'] = 'npm';
 | 
				
			||||||
 | 
					      getStateSpy.mockImplementation((name: string) => {
 | 
				
			||||||
 | 
					        if (name === State.CacheMatchedKey) {
 | 
				
			||||||
 | 
					          return npmFileHash;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          return yarnFileHash;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      getCommandOutputSpy.mockImplementationOnce(() => `${commonPath}/npm`);
 | 
				
			||||||
 | 
					      saveCacheSpy.mockImplementation(() => {
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(getInputSpy).toHaveBeenCalled();
 | 
				
			||||||
 | 
					      expect(getStateSpy).toHaveBeenCalledTimes(2);
 | 
				
			||||||
 | 
					      expect(getCommandOutputSpy).toHaveBeenCalledTimes(1);
 | 
				
			||||||
 | 
					      expect(debugSpy).toHaveBeenCalledWith(`npm path is ${commonPath}/npm`);
 | 
				
			||||||
 | 
					      expect(infoSpy).not.toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        `Cache hit occurred on the primary key ${npmFileHash}, not saving cache.`
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(saveCacheSpy).toHaveBeenCalled();
 | 
				
			||||||
 | 
					      expect(infoSpy).not.toHaveBeenLastCalledWith(
 | 
				
			||||||
 | 
					        `Cache saved with the key: ${yarnFileHash}`
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(setFailedSpy).not.toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('saves with error from toolkit, should fail workflow', async () => {
 | 
				
			||||||
 | 
					      inputs['cache'] = 'npm';
 | 
				
			||||||
 | 
					      getStateSpy.mockImplementation((name: string) => {
 | 
				
			||||||
 | 
					        if (name === State.CacheMatchedKey) {
 | 
				
			||||||
 | 
					          return npmFileHash;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          return yarnFileHash;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      getCommandOutputSpy.mockImplementationOnce(() => `${commonPath}/npm`);
 | 
				
			||||||
 | 
					      saveCacheSpy.mockImplementation(() => {
 | 
				
			||||||
 | 
					        throw new cache.ValidationError('Validation failed');
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      expect(getInputSpy).toHaveBeenCalled();
 | 
				
			||||||
 | 
					      expect(getStateSpy).toHaveBeenCalledTimes(2);
 | 
				
			||||||
 | 
					      expect(getCommandOutputSpy).toHaveBeenCalledTimes(1);
 | 
				
			||||||
 | 
					      expect(debugSpy).toHaveBeenCalledWith(`npm path is ${commonPath}/npm`);
 | 
				
			||||||
 | 
					      expect(infoSpy).not.toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					        `Cache hit occurred on the primary key ${npmFileHash}, not saving cache.`
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					      expect(saveCacheSpy).toHaveBeenCalled();
 | 
				
			||||||
 | 
					      expect(setFailedSpy).toHaveBeenCalled();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  afterEach(() => {
 | 
					  afterEach(() => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
import * as io from '@actions/io';
 | 
					import * as io from '@actions/io';
 | 
				
			||||||
import * as tc from '@actions/tool-cache';
 | 
					import * as tc from '@actions/tool-cache';
 | 
				
			||||||
 | 
					import * as exec from '@actions/exec';
 | 
				
			||||||
import * as im from '../src/installer';
 | 
					import * as im from '../src/installer';
 | 
				
			||||||
import * as cache from '@actions/cache';
 | 
					import * as cache from '@actions/cache';
 | 
				
			||||||
import fs from 'fs';
 | 
					import fs from 'fs';
 | 
				
			||||||
@@ -38,6 +39,7 @@ describe('setup-node', () => {
 | 
				
			|||||||
  let authSpy: jest.SpyInstance;
 | 
					  let authSpy: jest.SpyInstance;
 | 
				
			||||||
  let parseNodeVersionSpy: jest.SpyInstance;
 | 
					  let parseNodeVersionSpy: jest.SpyInstance;
 | 
				
			||||||
  let isCacheActionAvailable: jest.SpyInstance;
 | 
					  let isCacheActionAvailable: jest.SpyInstance;
 | 
				
			||||||
 | 
					  let getExecOutputSpy: jest.SpyInstance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  beforeEach(() => {
 | 
					  beforeEach(() => {
 | 
				
			||||||
    // @actions/core
 | 
					    // @actions/core
 | 
				
			||||||
@@ -103,6 +105,10 @@ describe('setup-node', () => {
 | 
				
			|||||||
      // uncomment to debug
 | 
					      // uncomment to debug
 | 
				
			||||||
      // process.stderr.write('log:' + line + '\n');
 | 
					      // process.stderr.write('log:' + line + '\n');
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // @actions/exec
 | 
				
			||||||
 | 
					    getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
 | 
				
			||||||
 | 
					    getExecOutputSpy.mockImplementation(() => 'v16.15.0');
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  afterEach(() => {
 | 
					  afterEach(() => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,8 @@ inputs:
 | 
				
			|||||||
outputs:
 | 
					outputs:
 | 
				
			||||||
  cache-hit: 
 | 
					  cache-hit: 
 | 
				
			||||||
    description: 'A boolean value to indicate if a cache was hit.'
 | 
					    description: 'A boolean value to indicate if a cache was hit.'
 | 
				
			||||||
 | 
					  node-version:
 | 
				
			||||||
 | 
					    description: 'The installed node version.'
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: 'node16'
 | 
					  using: 'node16'
 | 
				
			||||||
  main: 'dist/setup/index.js'
 | 
					  main: 'dist/setup/index.js'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2191
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2191
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2461
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2461
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -247,3 +247,5 @@ steps:
 | 
				
			|||||||
# `npm rebuild` will run all those post-install scripts for us.
 | 
					# `npm rebuild` will run all those post-install scripts for us.
 | 
				
			||||||
- run: npm rebuild && npm run prepare --if-present
 | 
					- run: npm rebuild && npm run prepare --if-present
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NOTE: As per https://github.com/actions/setup-node/issues/49 you cannot use `secrets.GITHUB_TOKEN` to access private GitHub Packages within the same organisation but in a different repository.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										88
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										88
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -9,12 +9,12 @@
 | 
				
			|||||||
      "version": "3.1.1",
 | 
					      "version": "3.1.1",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/cache": "^2.0.2",
 | 
					        "@actions/cache": "^3.0.0",
 | 
				
			||||||
        "@actions/core": "^1.6.0",
 | 
					        "@actions/core": "^1.6.0",
 | 
				
			||||||
        "@actions/exec": "^1.1.0",
 | 
					        "@actions/exec": "^1.1.0",
 | 
				
			||||||
        "@actions/github": "^1.1.0",
 | 
					        "@actions/github": "^1.1.0",
 | 
				
			||||||
        "@actions/glob": "^0.2.0",
 | 
					        "@actions/glob": "^0.2.0",
 | 
				
			||||||
        "@actions/http-client": "^1.0.11",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "@actions/io": "^1.0.2",
 | 
					        "@actions/io": "^1.0.2",
 | 
				
			||||||
        "@actions/tool-cache": "^1.5.4",
 | 
					        "@actions/tool-cache": "^1.5.4",
 | 
				
			||||||
        "semver": "^6.1.1"
 | 
					        "semver": "^6.1.1"
 | 
				
			||||||
@@ -32,14 +32,14 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/cache": {
 | 
					    "node_modules/@actions/cache": {
 | 
				
			||||||
      "version": "2.0.2",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-2.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==",
 | 
					      "integrity": "sha512-GL9CT1Fnu+pqs8TTB621q8Xa8Cilw2n9MwvbgMedetH7L1q2n6jY61gzbwGbKgtVbp3gVJ12aNMi4osSGXx3KQ==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/core": "^1.2.6",
 | 
					        "@actions/core": "^1.2.6",
 | 
				
			||||||
        "@actions/exec": "^1.0.1",
 | 
					        "@actions/exec": "^1.0.1",
 | 
				
			||||||
        "@actions/glob": "^0.1.0",
 | 
					        "@actions/glob": "^0.1.0",
 | 
				
			||||||
        "@actions/http-client": "^1.0.9",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "@actions/io": "^1.0.1",
 | 
					        "@actions/io": "^1.0.1",
 | 
				
			||||||
        "@azure/ms-rest-js": "^2.6.0",
 | 
					        "@azure/ms-rest-js": "^2.6.0",
 | 
				
			||||||
        "@azure/storage-blob": "^12.8.0",
 | 
					        "@azure/storage-blob": "^12.8.0",
 | 
				
			||||||
@@ -56,6 +56,14 @@
 | 
				
			|||||||
        "minimatch": "^3.0.4"
 | 
					        "minimatch": "^3.0.4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@actions/cache/node_modules/@actions/http-client": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tunnel": "^0.0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/cache/node_modules/uuid": {
 | 
					    "node_modules/@actions/cache/node_modules/uuid": {
 | 
				
			||||||
      "version": "3.4.0",
 | 
					      "version": "3.4.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
 | 
				
			||||||
@@ -73,6 +81,14 @@
 | 
				
			|||||||
        "@actions/http-client": "^1.0.11"
 | 
					        "@actions/http-client": "^1.0.11"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@actions/core/node_modules/@actions/http-client": {
 | 
				
			||||||
 | 
					      "version": "1.0.11",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tunnel": "0.0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/exec": {
 | 
					    "node_modules/@actions/exec": {
 | 
				
			||||||
      "version": "1.1.0",
 | 
					      "version": "1.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.0.tgz",
 | 
				
			||||||
@@ -100,11 +116,11 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/http-client": {
 | 
					    "node_modules/@actions/http-client": {
 | 
				
			||||||
      "version": "1.0.11",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
 | 
					      "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "tunnel": "0.0.6"
 | 
					        "tunnel": "^0.0.6"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/io": {
 | 
					    "node_modules/@actions/io": {
 | 
				
			||||||
@@ -125,6 +141,14 @@
 | 
				
			|||||||
        "uuid": "^3.3.2"
 | 
					        "uuid": "^3.3.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@actions/tool-cache/node_modules/@actions/http-client": {
 | 
				
			||||||
 | 
					      "version": "1.0.11",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tunnel": "0.0.6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@azure/abort-controller": {
 | 
					    "node_modules/@azure/abort-controller": {
 | 
				
			||||||
      "version": "1.0.4",
 | 
					      "version": "1.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz",
 | 
				
			||||||
@@ -5079,14 +5103,14 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/cache": {
 | 
					    "@actions/cache": {
 | 
				
			||||||
      "version": "2.0.2",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-2.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==",
 | 
					      "integrity": "sha512-GL9CT1Fnu+pqs8TTB621q8Xa8Cilw2n9MwvbgMedetH7L1q2n6jY61gzbwGbKgtVbp3gVJ12aNMi4osSGXx3KQ==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@actions/core": "^1.2.6",
 | 
					        "@actions/core": "^1.2.6",
 | 
				
			||||||
        "@actions/exec": "^1.0.1",
 | 
					        "@actions/exec": "^1.0.1",
 | 
				
			||||||
        "@actions/glob": "^0.1.0",
 | 
					        "@actions/glob": "^0.1.0",
 | 
				
			||||||
        "@actions/http-client": "^1.0.9",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "@actions/io": "^1.0.1",
 | 
					        "@actions/io": "^1.0.1",
 | 
				
			||||||
        "@azure/ms-rest-js": "^2.6.0",
 | 
					        "@azure/ms-rest-js": "^2.6.0",
 | 
				
			||||||
        "@azure/storage-blob": "^12.8.0",
 | 
					        "@azure/storage-blob": "^12.8.0",
 | 
				
			||||||
@@ -5103,6 +5127,14 @@
 | 
				
			|||||||
            "minimatch": "^3.0.4"
 | 
					            "minimatch": "^3.0.4"
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "@actions/http-client": {
 | 
				
			||||||
 | 
					          "version": "2.0.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "tunnel": "^0.0.6"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "uuid": {
 | 
					        "uuid": {
 | 
				
			||||||
          "version": "3.4.0",
 | 
					          "version": "3.4.0",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
 | 
					          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
 | 
				
			||||||
@@ -5116,6 +5148,16 @@
 | 
				
			|||||||
      "integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==",
 | 
					      "integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@actions/http-client": "^1.0.11"
 | 
					        "@actions/http-client": "^1.0.11"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@actions/http-client": {
 | 
				
			||||||
 | 
					          "version": "1.0.11",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "tunnel": "0.0.6"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@actions/exec": {
 | 
					    "@actions/exec": {
 | 
				
			||||||
@@ -5145,11 +5187,11 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@actions/http-client": {
 | 
					    "@actions/http-client": {
 | 
				
			||||||
      "version": "1.0.11",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
 | 
					      "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "tunnel": "0.0.6"
 | 
					        "tunnel": "^0.0.6"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@actions/io": {
 | 
					    "@actions/io": {
 | 
				
			||||||
@@ -5168,6 +5210,16 @@
 | 
				
			|||||||
        "@actions/io": "^1.0.1",
 | 
					        "@actions/io": "^1.0.1",
 | 
				
			||||||
        "semver": "^6.1.0",
 | 
					        "semver": "^6.1.0",
 | 
				
			||||||
        "uuid": "^3.3.2"
 | 
					        "uuid": "^3.3.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@actions/http-client": {
 | 
				
			||||||
 | 
					          "version": "1.0.11",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "tunnel": "0.0.6"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@azure/abort-controller": {
 | 
					    "@azure/abort-controller": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
    "build": "ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
					    "build": "ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
				
			||||||
    "format": "prettier --write **/*.ts",
 | 
					    "format": "prettier --write **/*.ts",
 | 
				
			||||||
    "format-check": "prettier --check **/*.ts",
 | 
					    "format-check": "prettier --check **/*.ts",
 | 
				
			||||||
    "test": "jest",
 | 
					    "test": "jest --coverage",
 | 
				
			||||||
    "pre-checkin": "npm run format && npm run build && npm test"
 | 
					    "pre-checkin": "npm run format && npm run build && npm test"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "repository": {
 | 
					  "repository": {
 | 
				
			||||||
@@ -23,12 +23,12 @@
 | 
				
			|||||||
  "author": "GitHub",
 | 
					  "author": "GitHub",
 | 
				
			||||||
  "license": "MIT",
 | 
					  "license": "MIT",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/cache": "^2.0.2",
 | 
					    "@actions/cache": "^3.0.0",
 | 
				
			||||||
    "@actions/core": "^1.6.0",
 | 
					    "@actions/core": "^1.6.0",
 | 
				
			||||||
    "@actions/exec": "^1.1.0",
 | 
					    "@actions/exec": "^1.1.0",
 | 
				
			||||||
    "@actions/github": "^1.1.0",
 | 
					    "@actions/github": "^1.1.0",
 | 
				
			||||||
    "@actions/glob": "^0.2.0",
 | 
					    "@actions/glob": "^0.2.0",
 | 
				
			||||||
    "@actions/http-client": "^1.0.11",
 | 
					    "@actions/http-client": "^2.0.1",
 | 
				
			||||||
    "@actions/io": "^1.0.2",
 | 
					    "@actions/io": "^1.0.2",
 | 
				
			||||||
    "@actions/tool-cache": "^1.5.4",
 | 
					    "@actions/tool-cache": "^1.5.4",
 | 
				
			||||||
    "semver": "^6.1.1"
 | 
					    "semver": "^6.1.1"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,18 +49,12 @@ const cachePackages = async (packageManager: string) => {
 | 
				
			|||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  try {
 | 
					  const cacheId = await cache.saveCache([cachePath], primaryKey);
 | 
				
			||||||
    await cache.saveCache([cachePath], primaryKey);
 | 
					  if (cacheId == -1) {
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  core.info(`Cache saved with the key: ${primaryKey}`);
 | 
					  core.info(`Cache saved with the key: ${primaryKey}`);
 | 
				
			||||||
  } catch (error) {
 | 
					 | 
				
			||||||
    if (error.name === cache.ValidationError.name) {
 | 
					 | 
				
			||||||
      throw error;
 | 
					 | 
				
			||||||
    } else if (error.name === cache.ReserveCacheError.name) {
 | 
					 | 
				
			||||||
      core.info(error.message);
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      core.warning(`${error.message}`);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run();
 | 
					run();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ export interface PackageManagerInfo {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export const supportedPackageManagers: SupportedPackageManagers = {
 | 
					export const supportedPackageManagers: SupportedPackageManagers = {
 | 
				
			||||||
  npm: {
 | 
					  npm: {
 | 
				
			||||||
    lockFilePatterns: ['package-lock.json', 'yarn.lock'],
 | 
					    lockFilePatterns: ['package-lock.json', 'npm-shrinkwrap.json', 'yarn.lock'],
 | 
				
			||||||
    getCacheFolderCommand: 'npm config get cache'
 | 
					    getCacheFolderCommand: 'npm config get cache'
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  pnpm: {
 | 
					  pnpm: {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
 | 
					import * as exec from '@actions/exec';
 | 
				
			||||||
import * as installer from './installer';
 | 
					import * as installer from './installer';
 | 
				
			||||||
import fs from 'fs';
 | 
					import fs from 'fs';
 | 
				
			||||||
import * as auth from './authutil';
 | 
					import * as auth from './authutil';
 | 
				
			||||||
@@ -39,6 +40,14 @@ export async function run() {
 | 
				
			|||||||
      await installer.getNode(version, stable, checkLatest, auth, arch);
 | 
					      await installer.getNode(version, stable, checkLatest, auth, arch);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Output version of node is being used
 | 
				
			||||||
 | 
					    const {stdout: installedVersion} = await exec.getExecOutput(
 | 
				
			||||||
 | 
					      'node',
 | 
				
			||||||
 | 
					      ['--version'],
 | 
				
			||||||
 | 
					      {ignoreReturnCode: true}
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    core.setOutput('node-version', installedVersion);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const registryUrl: string = core.getInput('registry-url');
 | 
					    const registryUrl: string = core.getInput('registry-url');
 | 
				
			||||||
    const alwaysAuth: string = core.getInput('always-auth');
 | 
					    const alwaysAuth: string = core.getInput('always-auth');
 | 
				
			||||||
    if (registryUrl) {
 | 
					    if (registryUrl) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user