mirror of
				https://github.com/actions/setup-node.git
				synced 2025-11-04 05:19:11 +08:00 
			
		
		
		
	Print node, npm and yarn versions after installation (#368)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							c96ab56c5b
						
					
				
				
					commit
					c81d8ad96d
				
			@@ -249,6 +249,21 @@ describe('setup-node', () => {
 | 
			
		||||
 | 
			
		||||
    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(exSpy).toHaveBeenCalled();
 | 
			
		||||
    expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										42
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							@@ -73618,14 +73618,7 @@ function run() {
 | 
			
		||||
                const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE';
 | 
			
		||||
                yield installer.getNode(version, stable, checkLatest, auth, arch);
 | 
			
		||||
            }
 | 
			
		||||
            // Output version of node is being used
 | 
			
		||||
            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', '');
 | 
			
		||||
            }
 | 
			
		||||
            yield printEnvDetailsAndSetOutput();
 | 
			
		||||
            const registryUrl = core.getInput('registry-url');
 | 
			
		||||
            const alwaysAuth = core.getInput('always-auth');
 | 
			
		||||
            if (registryUrl) {
 | 
			
		||||
@@ -73665,6 +73658,39 @@ function resolveVersionInput() {
 | 
			
		||||
    }
 | 
			
		||||
    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 '';
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										48
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								src/main.ts
									
									
									
									
									
								
							@@ -40,17 +40,7 @@ export async function run() {
 | 
			
		||||
      await installer.getNode(version, stable, checkLatest, auth, arch);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Output version of node is being used
 | 
			
		||||
    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', '');
 | 
			
		||||
    }
 | 
			
		||||
    await printEnvDetailsAndSetOutput();
 | 
			
		||||
 | 
			
		||||
    const registryUrl: string = core.getInput('registry-url');
 | 
			
		||||
    const alwaysAuth: string = core.getInput('always-auth');
 | 
			
		||||
@@ -111,3 +101,39 @@ function resolveVersionInput(): string {
 | 
			
		||||
 | 
			
		||||
  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