You've already forked setup-node
							
							
				mirror of
				https://github.com/actions/setup-node.git
				synced 2025-11-04 16:56:38 +07: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"
 | 
			
		||||
version: 2.0.2
 | 
			
		||||
version: 3.0.0
 | 
			
		||||
type: npm
 | 
			
		||||
summary: Actions cache lib
 | 
			
		||||
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/setup-node@v3
 | 
			
		||||
  with:
 | 
			
		||||
    node-version: 14
 | 
			
		||||
    node-version: 16
 | 
			
		||||
- run: npm ci
 | 
			
		||||
- run: npm test
 | 
			
		||||
```
 | 
			
		||||
@ -35,14 +35,20 @@ For information regarding locally cached versions of Node.js on GitHub hosted ru
 | 
			
		||||
 | 
			
		||||
### 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`
 | 
			
		||||
 - More specific versions: `10.15`, `14.2.0`, `16.3.0`
 | 
			
		||||
Examples:
 | 
			
		||||
 | 
			
		||||
 - 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`
 | 
			
		||||
 - 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
 | 
			
		||||
 | 
			
		||||
@ -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 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`
 | 
			
		||||
 | 
			
		||||
@ -65,7 +71,7 @@ steps:
 | 
			
		||||
- uses: actions/checkout@v3
 | 
			
		||||
- uses: actions/setup-node@v3
 | 
			
		||||
  with:
 | 
			
		||||
    node-version: 14
 | 
			
		||||
    node-version: 16
 | 
			
		||||
    cache: 'npm'
 | 
			
		||||
- run: npm ci
 | 
			
		||||
- run: npm test
 | 
			
		||||
@ -78,7 +84,7 @@ steps:
 | 
			
		||||
- uses: actions/checkout@v3
 | 
			
		||||
- uses: actions/setup-node@v3
 | 
			
		||||
  with:
 | 
			
		||||
    node-version: 14
 | 
			
		||||
    node-version: 16
 | 
			
		||||
    cache: 'npm'
 | 
			
		||||
    cache-dependency-path: subdir/package-lock.json
 | 
			
		||||
- run: npm ci
 | 
			
		||||
@ -93,7 +99,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        node: [ 12, 14, 16 ]
 | 
			
		||||
        node: [ 14, 16, 18 ]
 | 
			
		||||
    name: Node ${{ matrix.node }} sample
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
@ -294,6 +294,63 @@ describe('run', () => {
 | 
			
		||||
      );
 | 
			
		||||
      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(() => {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
import * as core from '@actions/core';
 | 
			
		||||
import * as io from '@actions/io';
 | 
			
		||||
import * as tc from '@actions/tool-cache';
 | 
			
		||||
import * as exec from '@actions/exec';
 | 
			
		||||
import * as im from '../src/installer';
 | 
			
		||||
import * as cache from '@actions/cache';
 | 
			
		||||
import fs from 'fs';
 | 
			
		||||
@ -38,6 +39,7 @@ describe('setup-node', () => {
 | 
			
		||||
  let authSpy: jest.SpyInstance;
 | 
			
		||||
  let parseNodeVersionSpy: jest.SpyInstance;
 | 
			
		||||
  let isCacheActionAvailable: jest.SpyInstance;
 | 
			
		||||
  let getExecOutputSpy: jest.SpyInstance;
 | 
			
		||||
 | 
			
		||||
  beforeEach(() => {
 | 
			
		||||
    // @actions/core
 | 
			
		||||
@ -103,6 +105,10 @@ describe('setup-node', () => {
 | 
			
		||||
      // uncomment to debug
 | 
			
		||||
      // process.stderr.write('log:' + line + '\n');
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // @actions/exec
 | 
			
		||||
    getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
 | 
			
		||||
    getExecOutputSpy.mockImplementation(() => 'v16.15.0');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  afterEach(() => {
 | 
			
		||||
 | 
			
		||||
@ -30,6 +30,8 @@ inputs:
 | 
			
		||||
outputs:
 | 
			
		||||
  cache-hit: 
 | 
			
		||||
    description: 'A boolean value to indicate if a cache was hit.'
 | 
			
		||||
  node-version:
 | 
			
		||||
    description: 'The installed node version.'
 | 
			
		||||
runs:
 | 
			
		||||
  using: 'node16'
 | 
			
		||||
  main: 'dist/setup/index.js'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2207
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2207
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2733
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2733
									
								
								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.
 | 
			
		||||
- 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",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@actions/cache": "^2.0.2",
 | 
			
		||||
        "@actions/cache": "^3.0.0",
 | 
			
		||||
        "@actions/core": "^1.6.0",
 | 
			
		||||
        "@actions/exec": "^1.1.0",
 | 
			
		||||
        "@actions/github": "^1.1.0",
 | 
			
		||||
        "@actions/glob": "^0.2.0",
 | 
			
		||||
        "@actions/http-client": "^1.0.11",
 | 
			
		||||
        "@actions/http-client": "^2.0.1",
 | 
			
		||||
        "@actions/io": "^1.0.2",
 | 
			
		||||
        "@actions/tool-cache": "^1.5.4",
 | 
			
		||||
        "semver": "^6.1.1"
 | 
			
		||||
@ -32,14 +32,14 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@actions/cache": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==",
 | 
			
		||||
      "version": "3.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-GL9CT1Fnu+pqs8TTB621q8Xa8Cilw2n9MwvbgMedetH7L1q2n6jY61gzbwGbKgtVbp3gVJ12aNMi4osSGXx3KQ==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@actions/core": "^1.2.6",
 | 
			
		||||
        "@actions/exec": "^1.0.1",
 | 
			
		||||
        "@actions/glob": "^0.1.0",
 | 
			
		||||
        "@actions/http-client": "^1.0.9",
 | 
			
		||||
        "@actions/http-client": "^2.0.1",
 | 
			
		||||
        "@actions/io": "^1.0.1",
 | 
			
		||||
        "@azure/ms-rest-js": "^2.6.0",
 | 
			
		||||
        "@azure/storage-blob": "^12.8.0",
 | 
			
		||||
@ -56,6 +56,14 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "version": "3.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
 | 
			
		||||
@ -73,6 +81,14 @@
 | 
			
		||||
        "@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": {
 | 
			
		||||
      "version": "1.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.0.tgz",
 | 
			
		||||
@ -100,11 +116,11 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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==",
 | 
			
		||||
      "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"
 | 
			
		||||
        "tunnel": "^0.0.6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@actions/io": {
 | 
			
		||||
@ -125,6 +141,14 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz",
 | 
			
		||||
@ -5079,14 +5103,14 @@
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/cache": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==",
 | 
			
		||||
      "version": "3.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-GL9CT1Fnu+pqs8TTB621q8Xa8Cilw2n9MwvbgMedetH7L1q2n6jY61gzbwGbKgtVbp3gVJ12aNMi4osSGXx3KQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@actions/core": "^1.2.6",
 | 
			
		||||
        "@actions/exec": "^1.0.1",
 | 
			
		||||
        "@actions/glob": "^0.1.0",
 | 
			
		||||
        "@actions/http-client": "^1.0.9",
 | 
			
		||||
        "@actions/http-client": "^2.0.1",
 | 
			
		||||
        "@actions/io": "^1.0.1",
 | 
			
		||||
        "@azure/ms-rest-js": "^2.6.0",
 | 
			
		||||
        "@azure/storage-blob": "^12.8.0",
 | 
			
		||||
@ -5103,6 +5127,14 @@
 | 
			
		||||
            "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": {
 | 
			
		||||
          "version": "3.4.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
 | 
			
		||||
@ -5116,6 +5148,16 @@
 | 
			
		||||
      "integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@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": {
 | 
			
		||||
@ -5145,11 +5187,11 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@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==",
 | 
			
		||||
      "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"
 | 
			
		||||
        "tunnel": "^0.0.6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@actions/io": {
 | 
			
		||||
@ -5168,6 +5210,16 @@
 | 
			
		||||
        "@actions/io": "^1.0.1",
 | 
			
		||||
        "semver": "^6.1.0",
 | 
			
		||||
        "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": {
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@
 | 
			
		||||
    "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-check": "prettier --check **/*.ts",
 | 
			
		||||
    "test": "jest",
 | 
			
		||||
    "test": "jest --coverage",
 | 
			
		||||
    "pre-checkin": "npm run format && npm run build && npm test"
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
@ -23,12 +23,12 @@
 | 
			
		||||
  "author": "GitHub",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/cache": "^2.0.2",
 | 
			
		||||
    "@actions/cache": "^3.0.0",
 | 
			
		||||
    "@actions/core": "^1.6.0",
 | 
			
		||||
    "@actions/exec": "^1.1.0",
 | 
			
		||||
    "@actions/github": "^1.1.0",
 | 
			
		||||
    "@actions/glob": "^0.2.0",
 | 
			
		||||
    "@actions/http-client": "^1.0.11",
 | 
			
		||||
    "@actions/http-client": "^2.0.1",
 | 
			
		||||
    "@actions/io": "^1.0.2",
 | 
			
		||||
    "@actions/tool-cache": "^1.5.4",
 | 
			
		||||
    "semver": "^6.1.1"
 | 
			
		||||
 | 
			
		||||
@ -49,18 +49,12 @@ const cachePackages = async (packageManager: string) => {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    await cache.saveCache([cachePath], 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}`);
 | 
			
		||||
    }
 | 
			
		||||
  const cacheId = await cache.saveCache([cachePath], primaryKey);
 | 
			
		||||
  if (cacheId == -1) {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  core.info(`Cache saved with the key: ${primaryKey}`);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
run();
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ export interface PackageManagerInfo {
 | 
			
		||||
 | 
			
		||||
export const supportedPackageManagers: SupportedPackageManagers = {
 | 
			
		||||
  npm: {
 | 
			
		||||
    lockFilePatterns: ['package-lock.json', 'yarn.lock'],
 | 
			
		||||
    lockFilePatterns: ['package-lock.json', 'npm-shrinkwrap.json', 'yarn.lock'],
 | 
			
		||||
    getCacheFolderCommand: 'npm config get cache'
 | 
			
		||||
  },
 | 
			
		||||
  pnpm: {
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,5 @@
 | 
			
		||||
import * as core from '@actions/core';
 | 
			
		||||
import * as exec from '@actions/exec';
 | 
			
		||||
import * as installer from './installer';
 | 
			
		||||
import fs from 'fs';
 | 
			
		||||
import * as auth from './authutil';
 | 
			
		||||
@ -39,6 +40,14 @@ export async function run() {
 | 
			
		||||
      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 alwaysAuth: string = core.getInput('always-auth');
 | 
			
		||||
    if (registryUrl) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user