diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts
index c1e16b5f..ee3ede79 100644
--- a/__tests__/installer.test.ts
+++ b/__tests__/installer.test.ts
@@ -41,6 +41,7 @@ describe('setup-node', () => {
   let parseNodeVersionSpy: jest.SpyInstance;
   let isCacheActionAvailable: jest.SpyInstance;
   let getExecOutputSpy: jest.SpyInstance;
+  let execExecSpy: jest.SpyInstance;
 
   beforeEach(() => {
     // @actions/core
@@ -57,6 +58,7 @@ describe('setup-node', () => {
     archSpy = jest.spyOn(osm, 'arch');
     archSpy.mockImplementation(() => os['arch']);
     execSpy = jest.spyOn(cp, 'execSync');
+    execExecSpy = jest.spyOn(exec, 'exec');
 
     // @actions/tool-cache
     findSpy = jest.spyOn(tc, 'find');
@@ -249,6 +251,10 @@ describe('setup-node', () => {
 
     let expPath = path.join(toolPath, 'bin');
 
+    expect(execExecSpy).toHaveBeenCalledWith('node', ['--version']);
+    expect(execExecSpy).toHaveBeenCalledWith('npm', ['--version'], expect.anything());
+    expect(execExecSpy).toHaveBeenCalledWith('yarn', ['--version'], expect.anything());
+
     expect(dlSpy).toHaveBeenCalled();
     expect(exSpy).toHaveBeenCalled();
     expect(logSpy).toHaveBeenCalledWith(
diff --git a/src/main.ts b/src/main.ts
index ac7e51f5..e47952c4 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -6,6 +6,7 @@ import * as auth from './authutil';
 import * as path from 'path';
 import {restoreCache} from './cache-restore';
 import {isGhes, isCacheFeatureAvailable} from './cache-utils';
+import { URL } from 'url';
 import os = require('os');
 
 export async function run() {
@@ -40,17 +41,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');
@@ -108,3 +99,30 @@ function resolveVersionInput(): string {
 
   return version;
 }
+
+async function printEnvDetailsAndSetOutput() {
+  const groupName = "Environment details";
+
+  core.startGroup(groupName);
+  // Output version of node is being used
+  try {
+    const {stdout: installedNodeVersion} = await exec.getExecOutput(
+      'node',
+      ['--version'],
+      {ignoreReturnCode: true}
+    );
+    core.setOutput('node-version', installedNodeVersion.trim());
+  } catch (err) {
+    core.setOutput('node-version', '');
+  }
+
+  await exec.getExecOutput('npm', ['--version'], {
+    ignoreReturnCode: true
+  });
+
+  await exec.getExecOutput('yarn', ['--version'], {
+    ignoreReturnCode: true
+  });
+
+  core.endGroup(groupName);
+}