mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-10-31 07:47:14 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 8c91899e58 | ||
|   | c81d8ad96d | ||
|   | c96ab56c5b | 
							
								
								
									
										2
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| --- | --- | ||||||
| name: "@actions/core" | name: "@actions/core" | ||||||
| version: 1.9.1 | version: 1.10.0 | ||||||
| type: npm | type: npm | ||||||
| summary: Actions core lib | summary: Actions core lib | ||||||
| homepage: https://github.com/actions/toolkit/tree/main/packages/core | homepage: https://github.com/actions/toolkit/tree/main/packages/core | ||||||
|   | |||||||
| @@ -46,6 +46,7 @@ describe('setup-node', () => { | |||||||
|     // @actions/core |     // @actions/core | ||||||
|     console.log('::stop-commands::stoptoken'); // Disable executing of runner commands when running tests in actions |     console.log('::stop-commands::stoptoken'); // Disable executing of runner commands when running tests in actions | ||||||
|     process.env['GITHUB_PATH'] = ''; // Stub out ENV file functionality so we can verify it writes to standard out |     process.env['GITHUB_PATH'] = ''; // Stub out ENV file functionality so we can verify it writes to standard out | ||||||
|  |     process.env['GITHUB_OUTPUT'] = ''; // Stub out ENV file functionality so we can verify it writes to standard out | ||||||
|     inputs = {}; |     inputs = {}; | ||||||
|     inSpy = jest.spyOn(core, 'getInput'); |     inSpy = jest.spyOn(core, 'getInput'); | ||||||
|     inSpy.mockImplementation(name => inputs[name]); |     inSpy.mockImplementation(name => inputs[name]); | ||||||
| @@ -249,6 +250,21 @@ describe('setup-node', () => { | |||||||
|  |  | ||||||
|     let expPath = path.join(toolPath, 'bin'); |     let expPath = path.join(toolPath, 'bin'); | ||||||
|  |  | ||||||
|  |     expect(getExecOutputSpy).toHaveBeenCalledWith( | ||||||
|  |       'node', | ||||||
|  |       ['--version'], | ||||||
|  |       expect.anything() | ||||||
|  |     ); | ||||||
|  |     expect(getExecOutputSpy).toHaveBeenCalledWith( | ||||||
|  |       'npm', | ||||||
|  |       ['--version'], | ||||||
|  |       expect.anything() | ||||||
|  |     ); | ||||||
|  |     expect(getExecOutputSpy).toHaveBeenCalledWith( | ||||||
|  |       'yarn', | ||||||
|  |       ['--version'], | ||||||
|  |       expect.anything() | ||||||
|  |     ); | ||||||
|     expect(dlSpy).toHaveBeenCalled(); |     expect(dlSpy).toHaveBeenCalled(); | ||||||
|     expect(exSpy).toHaveBeenCalled(); |     expect(exSpy).toHaveBeenCalled(); | ||||||
|     expect(logSpy).toHaveBeenCalledWith( |     expect(logSpy).toHaveBeenCalledWith( | ||||||
|   | |||||||
							
								
								
									
										57
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -3477,7 +3477,6 @@ const file_command_1 = __nccwpck_require__(717); | |||||||
| const utils_1 = __nccwpck_require__(5278); | const utils_1 = __nccwpck_require__(5278); | ||||||
| const os = __importStar(__nccwpck_require__(2037)); | const os = __importStar(__nccwpck_require__(2037)); | ||||||
| const path = __importStar(__nccwpck_require__(1017)); | const path = __importStar(__nccwpck_require__(1017)); | ||||||
| const uuid_1 = __nccwpck_require__(8974); |  | ||||||
| const oidc_utils_1 = __nccwpck_require__(8041); | const oidc_utils_1 = __nccwpck_require__(8041); | ||||||
| /** | /** | ||||||
|  * The code to exit an action |  * The code to exit an action | ||||||
| @@ -3507,20 +3506,9 @@ function exportVariable(name, val) { | |||||||
|     process.env[name] = convertedVal; |     process.env[name] = convertedVal; | ||||||
|     const filePath = process.env['GITHUB_ENV'] || ''; |     const filePath = process.env['GITHUB_ENV'] || ''; | ||||||
|     if (filePath) { |     if (filePath) { | ||||||
|         const delimiter = `ghadelimiter_${uuid_1.v4()}`; |         return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); | ||||||
|         // These should realistically never happen, but just in case someone finds a way to exploit uuid generation let's not allow keys or values that contain the delimiter.
 |  | ||||||
|         if (name.includes(delimiter)) { |  | ||||||
|             throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); |  | ||||||
|         } |  | ||||||
|         if (convertedVal.includes(delimiter)) { |  | ||||||
|             throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); |  | ||||||
|         } |  | ||||||
|         const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; |  | ||||||
|         file_command_1.issueCommand('ENV', commandValue); |  | ||||||
|     } |  | ||||||
|     else { |  | ||||||
|         command_1.issueCommand('set-env', { name }, convertedVal); |  | ||||||
|     } |     } | ||||||
|  |     command_1.issueCommand('set-env', { name }, convertedVal); | ||||||
| } | } | ||||||
| exports.exportVariable = exportVariable; | exports.exportVariable = exportVariable; | ||||||
| /** | /** | ||||||
| @@ -3538,7 +3526,7 @@ exports.setSecret = setSecret; | |||||||
| function addPath(inputPath) { | function addPath(inputPath) { | ||||||
|     const filePath = process.env['GITHUB_PATH'] || ''; |     const filePath = process.env['GITHUB_PATH'] || ''; | ||||||
|     if (filePath) { |     if (filePath) { | ||||||
|         file_command_1.issueCommand('PATH', inputPath); |         file_command_1.issueFileCommand('PATH', inputPath); | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         command_1.issueCommand('add-path', {}, inputPath); |         command_1.issueCommand('add-path', {}, inputPath); | ||||||
| @@ -3578,7 +3566,10 @@ function getMultilineInput(name, options) { | |||||||
|     const inputs = getInput(name, options) |     const inputs = getInput(name, options) | ||||||
|         .split('\n') |         .split('\n') | ||||||
|         .filter(x => x !== ''); |         .filter(x => x !== ''); | ||||||
|     return inputs; |     if (options && options.trimWhitespace === false) { | ||||||
|  |         return inputs; | ||||||
|  |     } | ||||||
|  |     return inputs.map(input => input.trim()); | ||||||
| } | } | ||||||
| exports.getMultilineInput = getMultilineInput; | exports.getMultilineInput = getMultilineInput; | ||||||
| /** | /** | ||||||
| @@ -3611,8 +3602,12 @@ exports.getBooleanInput = getBooleanInput; | |||||||
|  */ |  */ | ||||||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | ||||||
| function setOutput(name, value) { | function setOutput(name, value) { | ||||||
|  |     const filePath = process.env['GITHUB_OUTPUT'] || ''; | ||||||
|  |     if (filePath) { | ||||||
|  |         return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); | ||||||
|  |     } | ||||||
|     process.stdout.write(os.EOL); |     process.stdout.write(os.EOL); | ||||||
|     command_1.issueCommand('set-output', { name }, value); |     command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); | ||||||
| } | } | ||||||
| exports.setOutput = setOutput; | exports.setOutput = setOutput; | ||||||
| /** | /** | ||||||
| @@ -3741,7 +3736,11 @@ exports.group = group; | |||||||
|  */ |  */ | ||||||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | ||||||
| function saveState(name, value) { | function saveState(name, value) { | ||||||
|     command_1.issueCommand('save-state', { name }, value); |     const filePath = process.env['GITHUB_STATE'] || ''; | ||||||
|  |     if (filePath) { | ||||||
|  |         return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); | ||||||
|  |     } | ||||||
|  |     command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); | ||||||
| } | } | ||||||
| exports.saveState = saveState; | exports.saveState = saveState; | ||||||
| /** | /** | ||||||
| @@ -3807,13 +3806,14 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.issueCommand = void 0; | exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; | ||||||
| // We use any as a valid input type
 | // We use any as a valid input type
 | ||||||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | /* eslint-disable @typescript-eslint/no-explicit-any */ | ||||||
| const fs = __importStar(__nccwpck_require__(7147)); | const fs = __importStar(__nccwpck_require__(7147)); | ||||||
| const os = __importStar(__nccwpck_require__(2037)); | const os = __importStar(__nccwpck_require__(2037)); | ||||||
|  | const uuid_1 = __nccwpck_require__(8974); | ||||||
| const utils_1 = __nccwpck_require__(5278); | const utils_1 = __nccwpck_require__(5278); | ||||||
| function issueCommand(command, message) { | function issueFileCommand(command, message) { | ||||||
|     const filePath = process.env[`GITHUB_${command}`]; |     const filePath = process.env[`GITHUB_${command}`]; | ||||||
|     if (!filePath) { |     if (!filePath) { | ||||||
|         throw new Error(`Unable to find environment variable for file command ${command}`); |         throw new Error(`Unable to find environment variable for file command ${command}`); | ||||||
| @@ -3825,7 +3825,22 @@ function issueCommand(command, message) { | |||||||
|         encoding: 'utf8' |         encoding: 'utf8' | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.issueCommand = issueCommand; | exports.issueFileCommand = issueFileCommand; | ||||||
|  | function prepareKeyValueMessage(key, value) { | ||||||
|  |     const delimiter = `ghadelimiter_${uuid_1.v4()}`; | ||||||
|  |     const convertedValue = utils_1.toCommandValue(value); | ||||||
|  |     // These should realistically never happen, but just in case someone finds a
 | ||||||
|  |     // way to exploit uuid generation let's not allow keys or values that contain
 | ||||||
|  |     // the delimiter.
 | ||||||
|  |     if (key.includes(delimiter)) { | ||||||
|  |         throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); | ||||||
|  |     } | ||||||
|  |     if (convertedValue.includes(delimiter)) { | ||||||
|  |         throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); | ||||||
|  |     } | ||||||
|  |     return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; | ||||||
|  | } | ||||||
|  | exports.prepareKeyValueMessage = prepareKeyValueMessage; | ||||||
| //# sourceMappingURL=file-command.js.map
 | //# sourceMappingURL=file-command.js.map
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
|   | |||||||
							
								
								
									
										99
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -3477,7 +3477,6 @@ const file_command_1 = __nccwpck_require__(717); | |||||||
| const utils_1 = __nccwpck_require__(5278); | const utils_1 = __nccwpck_require__(5278); | ||||||
| const os = __importStar(__nccwpck_require__(2037)); | const os = __importStar(__nccwpck_require__(2037)); | ||||||
| const path = __importStar(__nccwpck_require__(1017)); | const path = __importStar(__nccwpck_require__(1017)); | ||||||
| const uuid_1 = __nccwpck_require__(8974); |  | ||||||
| const oidc_utils_1 = __nccwpck_require__(8041); | const oidc_utils_1 = __nccwpck_require__(8041); | ||||||
| /** | /** | ||||||
|  * The code to exit an action |  * The code to exit an action | ||||||
| @@ -3507,20 +3506,9 @@ function exportVariable(name, val) { | |||||||
|     process.env[name] = convertedVal; |     process.env[name] = convertedVal; | ||||||
|     const filePath = process.env['GITHUB_ENV'] || ''; |     const filePath = process.env['GITHUB_ENV'] || ''; | ||||||
|     if (filePath) { |     if (filePath) { | ||||||
|         const delimiter = `ghadelimiter_${uuid_1.v4()}`; |         return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); | ||||||
|         // These should realistically never happen, but just in case someone finds a way to exploit uuid generation let's not allow keys or values that contain the delimiter.
 |  | ||||||
|         if (name.includes(delimiter)) { |  | ||||||
|             throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); |  | ||||||
|         } |  | ||||||
|         if (convertedVal.includes(delimiter)) { |  | ||||||
|             throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); |  | ||||||
|         } |  | ||||||
|         const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; |  | ||||||
|         file_command_1.issueCommand('ENV', commandValue); |  | ||||||
|     } |  | ||||||
|     else { |  | ||||||
|         command_1.issueCommand('set-env', { name }, convertedVal); |  | ||||||
|     } |     } | ||||||
|  |     command_1.issueCommand('set-env', { name }, convertedVal); | ||||||
| } | } | ||||||
| exports.exportVariable = exportVariable; | exports.exportVariable = exportVariable; | ||||||
| /** | /** | ||||||
| @@ -3538,7 +3526,7 @@ exports.setSecret = setSecret; | |||||||
| function addPath(inputPath) { | function addPath(inputPath) { | ||||||
|     const filePath = process.env['GITHUB_PATH'] || ''; |     const filePath = process.env['GITHUB_PATH'] || ''; | ||||||
|     if (filePath) { |     if (filePath) { | ||||||
|         file_command_1.issueCommand('PATH', inputPath); |         file_command_1.issueFileCommand('PATH', inputPath); | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         command_1.issueCommand('add-path', {}, inputPath); |         command_1.issueCommand('add-path', {}, inputPath); | ||||||
| @@ -3578,7 +3566,10 @@ function getMultilineInput(name, options) { | |||||||
|     const inputs = getInput(name, options) |     const inputs = getInput(name, options) | ||||||
|         .split('\n') |         .split('\n') | ||||||
|         .filter(x => x !== ''); |         .filter(x => x !== ''); | ||||||
|     return inputs; |     if (options && options.trimWhitespace === false) { | ||||||
|  |         return inputs; | ||||||
|  |     } | ||||||
|  |     return inputs.map(input => input.trim()); | ||||||
| } | } | ||||||
| exports.getMultilineInput = getMultilineInput; | exports.getMultilineInput = getMultilineInput; | ||||||
| /** | /** | ||||||
| @@ -3611,8 +3602,12 @@ exports.getBooleanInput = getBooleanInput; | |||||||
|  */ |  */ | ||||||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | ||||||
| function setOutput(name, value) { | function setOutput(name, value) { | ||||||
|  |     const filePath = process.env['GITHUB_OUTPUT'] || ''; | ||||||
|  |     if (filePath) { | ||||||
|  |         return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); | ||||||
|  |     } | ||||||
|     process.stdout.write(os.EOL); |     process.stdout.write(os.EOL); | ||||||
|     command_1.issueCommand('set-output', { name }, value); |     command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); | ||||||
| } | } | ||||||
| exports.setOutput = setOutput; | exports.setOutput = setOutput; | ||||||
| /** | /** | ||||||
| @@ -3741,7 +3736,11 @@ exports.group = group; | |||||||
|  */ |  */ | ||||||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | ||||||
| function saveState(name, value) { | function saveState(name, value) { | ||||||
|     command_1.issueCommand('save-state', { name }, value); |     const filePath = process.env['GITHUB_STATE'] || ''; | ||||||
|  |     if (filePath) { | ||||||
|  |         return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); | ||||||
|  |     } | ||||||
|  |     command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); | ||||||
| } | } | ||||||
| exports.saveState = saveState; | exports.saveState = saveState; | ||||||
| /** | /** | ||||||
| @@ -3807,13 +3806,14 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.issueCommand = void 0; | exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; | ||||||
| // We use any as a valid input type
 | // We use any as a valid input type
 | ||||||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | /* eslint-disable @typescript-eslint/no-explicit-any */ | ||||||
| const fs = __importStar(__nccwpck_require__(7147)); | const fs = __importStar(__nccwpck_require__(7147)); | ||||||
| const os = __importStar(__nccwpck_require__(2037)); | const os = __importStar(__nccwpck_require__(2037)); | ||||||
|  | const uuid_1 = __nccwpck_require__(8974); | ||||||
| const utils_1 = __nccwpck_require__(5278); | const utils_1 = __nccwpck_require__(5278); | ||||||
| function issueCommand(command, message) { | function issueFileCommand(command, message) { | ||||||
|     const filePath = process.env[`GITHUB_${command}`]; |     const filePath = process.env[`GITHUB_${command}`]; | ||||||
|     if (!filePath) { |     if (!filePath) { | ||||||
|         throw new Error(`Unable to find environment variable for file command ${command}`); |         throw new Error(`Unable to find environment variable for file command ${command}`); | ||||||
| @@ -3825,7 +3825,22 @@ function issueCommand(command, message) { | |||||||
|         encoding: 'utf8' |         encoding: 'utf8' | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.issueCommand = issueCommand; | exports.issueFileCommand = issueFileCommand; | ||||||
|  | function prepareKeyValueMessage(key, value) { | ||||||
|  |     const delimiter = `ghadelimiter_${uuid_1.v4()}`; | ||||||
|  |     const convertedValue = utils_1.toCommandValue(value); | ||||||
|  |     // These should realistically never happen, but just in case someone finds a
 | ||||||
|  |     // way to exploit uuid generation let's not allow keys or values that contain
 | ||||||
|  |     // the delimiter.
 | ||||||
|  |     if (key.includes(delimiter)) { | ||||||
|  |         throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); | ||||||
|  |     } | ||||||
|  |     if (convertedValue.includes(delimiter)) { | ||||||
|  |         throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); | ||||||
|  |     } | ||||||
|  |     return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; | ||||||
|  | } | ||||||
|  | exports.prepareKeyValueMessage = prepareKeyValueMessage; | ||||||
| //# sourceMappingURL=file-command.js.map
 | //# sourceMappingURL=file-command.js.map
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -73618,14 +73633,7 @@ function run() { | |||||||
|                 const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE'; |                 const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE'; | ||||||
|                 yield installer.getNode(version, stable, checkLatest, auth, arch); |                 yield installer.getNode(version, stable, checkLatest, auth, arch); | ||||||
|             } |             } | ||||||
|             // Output version of node is being used
 |             yield printEnvDetailsAndSetOutput(); | ||||||
|             try { |  | ||||||
|                 const { stdout: installedVersion } = yield exec.getExecOutput('node', ['--version'], { ignoreReturnCode: true, silent: true }); |  | ||||||
|                 core.setOutput('node-version', installedVersion.trim()); |  | ||||||
|             } |  | ||||||
|             catch (err) { |  | ||||||
|                 core.setOutput('node-version', ''); |  | ||||||
|             } |  | ||||||
|             const registryUrl = core.getInput('registry-url'); |             const registryUrl = core.getInput('registry-url'); | ||||||
|             const alwaysAuth = core.getInput('always-auth'); |             const alwaysAuth = core.getInput('always-auth'); | ||||||
|             if (registryUrl) { |             if (registryUrl) { | ||||||
| @@ -73665,6 +73673,39 @@ function resolveVersionInput() { | |||||||
|     } |     } | ||||||
|     return version; |     return version; | ||||||
| } | } | ||||||
|  | function printEnvDetailsAndSetOutput() { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         core.startGroup('Environment details'); | ||||||
|  |         const promises = ['node', 'npm', 'yarn'].map((tool) => __awaiter(this, void 0, void 0, function* () { | ||||||
|  |             const output = yield getToolVersion(tool, ['--version']); | ||||||
|  |             if (tool === 'node') { | ||||||
|  |                 core.setOutput(`${tool}-version`, output); | ||||||
|  |             } | ||||||
|  |             core.info(`${tool}: ${output}`); | ||||||
|  |         })); | ||||||
|  |         yield Promise.all(promises); | ||||||
|  |         core.endGroup(); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | exports.printEnvDetailsAndSetOutput = printEnvDetailsAndSetOutput; | ||||||
|  | function getToolVersion(tool, options) { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         try { | ||||||
|  |             const { stdout, stderr, exitCode } = yield exec.getExecOutput(tool, options, { | ||||||
|  |                 ignoreReturnCode: true, | ||||||
|  |                 silent: true | ||||||
|  |             }); | ||||||
|  |             if (exitCode > 0) { | ||||||
|  |                 core.warning(`[warning]${stderr}`); | ||||||
|  |                 return ''; | ||||||
|  |             } | ||||||
|  |             return stdout; | ||||||
|  |         } | ||||||
|  |         catch (err) { | ||||||
|  |             return ''; | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
|   | |||||||
| @@ -283,3 +283,6 @@ steps: | |||||||
|   run: yarn install --immutable |   run: yarn install --immutable | ||||||
| ``` | ``` | ||||||
| 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. | 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. | ||||||
|  |  | ||||||
|  | ### always-auth input | ||||||
|  | The always-auth input sets `always-auth=true` in .npmrc file. With this option set [npm](https://docs.npmjs.com/cli/v6/using-npm/config#always-auth)/yarn sends the authentication credentials when making a request to the registries. | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										14
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -10,7 +10,7 @@ | |||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^3.0.4", |         "@actions/cache": "^3.0.4", | ||||||
|         "@actions/core": "^1.6.0", |         "@actions/core": "^1.10.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", | ||||||
| @@ -74,9 +74,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/core": { |     "node_modules/@actions/core": { | ||||||
|       "version": "1.9.1", |       "version": "1.10.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", | ||||||
|       "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", |       "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/http-client": "^2.0.1", |         "@actions/http-client": "^2.0.1", | ||||||
|         "uuid": "^8.3.2" |         "uuid": "^8.3.2" | ||||||
| @@ -5144,9 +5144,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@actions/core": { |     "@actions/core": { | ||||||
|       "version": "1.9.1", |       "version": "1.10.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", | ||||||
|       "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", |       "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@actions/http-client": "^2.0.1", |         "@actions/http-client": "^2.0.1", | ||||||
|         "uuid": "^8.3.2" |         "uuid": "^8.3.2" | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ | |||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/cache": "^3.0.4", |     "@actions/cache": "^3.0.4", | ||||||
|     "@actions/core": "^1.6.0", |     "@actions/core": "^1.10.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", | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								src/main.ts
									
									
									
									
									
								
							| @@ -40,17 +40,7 @@ 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 |     await printEnvDetailsAndSetOutput(); | ||||||
|     try { |  | ||||||
|       const {stdout: installedVersion} = await exec.getExecOutput( |  | ||||||
|         'node', |  | ||||||
|         ['--version'], |  | ||||||
|         {ignoreReturnCode: true, silent: true} |  | ||||||
|       ); |  | ||||||
|       core.setOutput('node-version', installedVersion.trim()); |  | ||||||
|     } catch (err) { |  | ||||||
|       core.setOutput('node-version', ''); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     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'); | ||||||
| @@ -111,3 +101,39 @@ function resolveVersionInput(): string { | |||||||
|  |  | ||||||
|   return version; |   return version; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export async function printEnvDetailsAndSetOutput() { | ||||||
|  |   core.startGroup('Environment details'); | ||||||
|  |  | ||||||
|  |   const promises = ['node', 'npm', 'yarn'].map(async tool => { | ||||||
|  |     const output = await getToolVersion(tool, ['--version']); | ||||||
|  |  | ||||||
|  |     if (tool === 'node') { | ||||||
|  |       core.setOutput(`${tool}-version`, output); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     core.info(`${tool}: ${output}`); | ||||||
|  |   }); | ||||||
|  |  | ||||||
|  |   await Promise.all(promises); | ||||||
|  |  | ||||||
|  |   core.endGroup(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | async function getToolVersion(tool: string, options: string[]) { | ||||||
|  |   try { | ||||||
|  |     const {stdout, stderr, exitCode} = await exec.getExecOutput(tool, options, { | ||||||
|  |       ignoreReturnCode: true, | ||||||
|  |       silent: true | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     if (exitCode > 0) { | ||||||
|  |       core.warning(`[warning]${stderr}`); | ||||||
|  |       return ''; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return stdout; | ||||||
|  |   } catch (err) { | ||||||
|  |     return ''; | ||||||
|  |   } | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user