Remove hard dependency from installer

This commit is contained in:
Nikolai Laevskii
2023-09-08 15:21:18 +02:00
parent 3edc8ffab8
commit fd2f9a08fe
5 changed files with 245 additions and 235 deletions

View File

@ -253,12 +253,12 @@ export class DotnetCoreInstaller {
DotnetInstallDir.setEnvironmentVariable();
}
constructor(private version: string, private quality: QualityOptions) {}
constructor(
private readonly dotnetVersion: DotnetVersion,
private readonly quality: QualityOptions
) {}
public async installDotnet(): Promise<string | null> {
const versionResolver = new DotnetVersionResolver(this.version);
const dotnetVersion = await versionResolver.createDotnetVersion();
/**
* Install dotnet runitme first in order to get
* the latest stable version of dotnet CLI
@ -294,7 +294,7 @@ export class DotnetCoreInstaller {
IS_WINDOWS ? '-SkipNonVersionedFiles' : '--skip-non-versioned-files'
)
// Use version provided by user
.useVersion(dotnetVersion, this.quality)
.useVersion(this.dotnetVersion, this.quality)
.execute();
if (dotnetInstallOutput.exitCode) {

View File

@ -1,5 +1,9 @@
import * as core from '@actions/core';
import {DotnetCoreInstaller, DotnetInstallDir} from './installer';
import {
DotnetCoreInstaller,
DotnetInstallDir,
DotnetVersionResolver
} from './installer';
import * as fs from 'fs';
import path from 'path';
import semver from 'semver';
@ -67,9 +71,15 @@ export async function run() {
}
let dotnetInstaller: DotnetCoreInstaller;
let dotnetVersionResolver: DotnetVersionResolver;
const uniqueVersions = new Set<string>(versions);
for (const version of uniqueVersions) {
dotnetInstaller = new DotnetCoreInstaller(version, quality);
dotnetVersionResolver = new DotnetVersionResolver(version);
dotnetInstaller = new DotnetCoreInstaller(
await dotnetVersionResolver.createDotnetVersion(),
quality
);
const installedVersion = await dotnetInstaller.installDotnet();
installedDotnetVersions.push(installedVersion);
}