From fe6123a5c5d1d97cd2444e0fe15dac275e1a7c65 Mon Sep 17 00:00:00 2001 From: La'Kaleigh Harris <35268101+Xlient@users.noreply.github.com> Date: Wed, 10 Nov 2021 17:23:46 +0000 Subject: [PATCH] add seperate method to add to Path --- __tests__/installer.test.ts | 3 +++ dist/index.js | 39 ++++++++++++++++++++----------------- src/installer.ts | 11 +++++++---- src/setup-dotnet.ts | 5 +++-- 4 files changed, 34 insertions(+), 24 deletions(-) diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index b102f7e..aa7eb74 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -38,6 +38,7 @@ describe('installer tests', () => { for (const version of versions) { await getDotnet(version); } + installer.DotnetCoreInstaller.addToPath(); expect(fs.existsSync(path.join(toolDir, 'sdk', '2.2.207'))).toBe(true); expect(fs.existsSync(path.join(toolDir, 'sdk', '3.1.120'))).toBe(true); @@ -55,6 +56,7 @@ describe('installer tests', () => { it('Acquires version of dotnet if no matching version is installed', async () => { await getDotnet('3.1.201'); + installer.DotnetCoreInstaller.addToPath(); expect(fs.existsSync(path.join(toolDir, 'sdk', '3.1.201'))).toBe(true); if (IS_WINDOWS) { expect(fs.existsSync(path.join(toolDir, 'dotnet.exe'))).toBe(true); @@ -70,6 +72,7 @@ describe('installer tests', () => { it('Acquires generic version of dotnet if no matching version is installed', async () => { await getDotnet('3.1'); + installer.DotnetCoreInstaller.addToPath(); var directory = fs .readdirSync(path.join(toolDir, 'sdk')) .filter(fn => fn.startsWith('3.1.')); diff --git a/dist/index.js b/dist/index.js index a6dd0c6..8eb9778 100644 --- a/dist/index.js +++ b/dist/index.js @@ -8683,7 +8683,7 @@ function run() { versions[0] = getVersionFromGlobalJson(globalJsonPath); } } - if (versions) { + if (versions.length) { const includePrerelease = (core.getInput('include-prerelease') || 'false').toLowerCase() === 'true'; let dotnetInstaller; @@ -8691,6 +8691,7 @@ function run() { dotnetInstaller = new installer.DotnetCoreInstaller(version, includePrerelease); yield dotnetInstaller.installDotnet(); } + installer.DotnetCoreInstaller.addToPath(); } const sourceUrl = core.getInput('source-url'); const configFile = core.getInput('config-file'); @@ -18103,28 +18104,30 @@ class DotnetCoreInstaller { env: envVariables }); } - if (process.env['DOTNET_INSTALL_DIR']) { - core.addPath(process.env['DOTNET_INSTALL_DIR']); - core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']); - } - else { - if (IS_WINDOWS) { - // This is the default set in install-dotnet.ps1 - core.addPath(path.join(process.env['LocalAppData'] + '', 'Microsoft', 'dotnet')); - core.exportVariable('DOTNET_ROOT', path.join(process.env['LocalAppData'] + '', 'Microsoft', 'dotnet')); - } - else { - // This is the default set in install-dotnet.sh - core.addPath(path.join(process.env['HOME'] + '', '.dotnet')); - core.exportVariable('DOTNET_ROOT', path.join(process.env['HOME'] + '', '.dotnet')); - } - } - console.log(process.env['PATH']); if (resultCode != 0) { throw new Error(`Failed to install dotnet ${resultCode}. ${output}`); } }); } + static addToPath() { + if (process.env['DOTNET_INSTALL_DIR']) { + core.addPath(process.env['DOTNET_INSTALL_DIR']); + core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']); + } + else { + if (IS_WINDOWS) { + // This is the default set in install-dotnet.ps1 + core.addPath(path.join(process.env['LocalAppData'] + '', 'Microsoft', 'dotnet')); + core.exportVariable('DOTNET_ROOT', path.join(process.env['LocalAppData'] + '', 'Microsoft', 'dotnet')); + } + else { + // This is the default set in install-dotnet.sh + core.addPath(path.join(process.env['HOME'] + '', '.dotnet')); + core.exportVariable('DOTNET_ROOT', path.join(process.env['HOME'] + '', '.dotnet')); + } + } + console.log(process.env['PATH']); + } // versionInfo - versionInfo of the SDK/Runtime resolveVersion(versionInfo) { return __awaiter(this, void 0, void 0, function* () { diff --git a/src/installer.ts b/src/installer.ts index 6bf250c..4251260 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -164,6 +164,13 @@ export class DotnetCoreInstaller { env: envVariables }); } + + if (resultCode != 0) { + throw new Error(`Failed to install dotnet ${resultCode}. ${output}`); + } + } + + static addToPath() { if (process.env['DOTNET_INSTALL_DIR']) { core.addPath(process.env['DOTNET_INSTALL_DIR']); core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']); @@ -188,10 +195,6 @@ export class DotnetCoreInstaller { } console.log(process.env['PATH']); - - if (resultCode != 0) { - throw new Error(`Failed to install dotnet ${resultCode}. ${output}`); - } } // versionInfo - versionInfo of the SDK/Runtime diff --git a/src/setup-dotnet.ts b/src/setup-dotnet.ts index f505a91..527f54d 100644 --- a/src/setup-dotnet.ts +++ b/src/setup-dotnet.ts @@ -23,11 +23,11 @@ export async function run() { } } - if (versions) { + if (versions.length) { const includePrerelease: boolean = (core.getInput('include-prerelease') || 'false').toLowerCase() === 'true'; - let dotnetInstaller: installer.DotnetCoreInstaller; + let dotnetInstaller!: installer.DotnetCoreInstaller; for (const version of versions) { dotnetInstaller = new installer.DotnetCoreInstaller( version, @@ -35,6 +35,7 @@ export async function run() { ); await dotnetInstaller.installDotnet(); } + installer.DotnetCoreInstaller.addToPath(); } const sourceUrl: string = core.getInput('source-url');