diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index bd56998..9126b2f 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -296,7 +296,7 @@ function normalizeFileContents(contents: string): string { async function getDotnet( version: string, - quality: string = '' + quality: string = '', architecture: string = '' ): Promise { const dotnetInstaller = new installer.DotnetCoreInstaller( diff --git a/dist/index.js b/dist/index.js index 82fb725..8992da6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -275,9 +275,10 @@ class DotnetVersionResolver { exports.DotnetVersionResolver = DotnetVersionResolver; DotnetVersionResolver.DotNetCoreIndexUrl = 'https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/releases-index.json'; class DotnetCoreInstaller { - constructor(version, quality) { + constructor(version, quality, architecture = '') { this.version = version; this.quality = quality; + this.architecture = architecture; } static convertInstallPathToAbsolute(installDir) { let transformedPath; @@ -352,6 +353,9 @@ class DotnetCoreInstaller { if (this.quality) { this.setQuality(dotnetVersion, scriptArguments); } + if (this.architecture != '') { + scriptArguments.push('--architecture', this.architecture); + } } // process.env must be explicitly passed in for DOTNET_INSTALL_DIR to be used const getExecOutputOptions = { @@ -471,6 +475,10 @@ function run() { // const versions = core.getMultilineInput('dotnet-version'); const installedDotnetVersions = []; + let architecture = core.getInput('architecture'); + if (!architecture) { + architecture = ''; + } const globalJsonFileInput = core.getInput('global-json-file'); if (globalJsonFileInput) { const globalJsonPath = path_1.default.join(process.cwd(), globalJsonFileInput); @@ -495,7 +503,7 @@ function run() { let dotnetInstaller; const uniqueVersions = new Set(versions); for (const version of uniqueVersions) { - dotnetInstaller = new installer_1.DotnetCoreInstaller(version, quality); + dotnetInstaller = new installer_1.DotnetCoreInstaller(version, quality, architecture); const installedVersion = yield dotnetInstaller.installDotnet(); installedDotnetVersions.push(installedVersion); } diff --git a/src/installer.ts b/src/installer.ts index 0a3a5f1..cf0ad11 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -20,11 +20,9 @@ export interface DotnetVersion { export class DotnetVersionResolver { private inputVersion: string; private resolvedArgument: DotnetVersion; - private architecture: string; - constructor(version: string, architecture: string = '') { + constructor(version: string) { this.inputVersion = version.trim(); - this.architecture = architecture; this.resolvedArgument = {type: '', value: '', qualityFlag: false}; } @@ -115,6 +113,7 @@ export class DotnetVersionResolver { export class DotnetCoreInstaller { private version: string; private quality: QualityOptions; + private architecture: string; static { const installationDirectoryWindows = path.join( @@ -142,9 +141,14 @@ export class DotnetCoreInstaller { } } - constructor(version: string, quality: QualityOptions) { + constructor( + version: string, + quality: QualityOptions, + architecture: string = '' + ) { this.version = version; this.quality = quality; + this.architecture = architecture; } private static convertInstallPathToAbsolute(installDir: string): string { @@ -232,7 +236,7 @@ export class DotnetCoreInstaller { if (this.quality) { this.setQuality(dotnetVersion, scriptArguments); } - + if (this.architecture != '') { scriptArguments.push('--architecture', this.architecture); } diff --git a/src/setup-dotnet.ts b/src/setup-dotnet.ts index 0bc43d9..ec997ff 100644 --- a/src/setup-dotnet.ts +++ b/src/setup-dotnet.ts @@ -29,7 +29,7 @@ export async function run() { const versions = core.getMultilineInput('dotnet-version'); const installedDotnetVersions: string[] = []; let architecture = core.getInput('architecture'); - + if (!architecture) { architecture = ''; } @@ -66,7 +66,11 @@ export async function run() { let dotnetInstaller: DotnetCoreInstaller; const uniqueVersions = new Set(versions); for (const version of uniqueVersions) { - dotnetInstaller = new DotnetCoreInstaller(version, quality, architecture); + dotnetInstaller = new DotnetCoreInstaller( + version, + quality, + architecture + ); const installedVersion = await dotnetInstaller.installDotnet(); installedDotnetVersions.push(installedVersion); }