Explicity set installation path

Github actions tool guidelines, is to use the worker tool cache, instead of system-wide install path.
This commit is contained in:
Jason Couture 2024-01-12 20:56:47 -05:00
parent 4d6c8fcf3c
commit efeedaa0ba
2 changed files with 50 additions and 8 deletions

24
dist/setup/index.js vendored
View File

@ -93164,6 +93164,13 @@ class DotnetInstallScript {
this.scriptArguments.push(...args);
return this;
}
useInstallPath(installPath) {
if (installPath == null) {
installPath = DotnetInstallDir.dirPath;
}
this.useArguments(utils_1.IS_WINDOWS ? '-Install-Dir' : '--install-dir', installPath);
return this;
}
useVersion(dotnetVersion, quality) {
if (dotnetVersion.type) {
this.useArguments(dotnetVersion.type, dotnetVersion.value);
@ -93189,6 +93196,15 @@ class DotnetInstallScript {
}
exports.DotnetInstallScript = DotnetInstallScript;
class DotnetInstallDir {
static getInstallDirectory() {
if (process.env['DOTNET_INSTALL_DIR'] != null) {
return process.env['DOTNET_INSTALL_DIR'];
}
if (process.env['RUNNER_TOOL_CACHE'] != null) {
return path_1.default.join(process.env['RUNNER_TOOL_CACHE'], 'dotnet');
}
return DotnetInstallDir.default[utils_1.PLATFORM];
}
static convertInstallPathToAbsolute(installDir) {
if (path_1.default.isAbsolute(installDir))
return path_1.default.normalize(installDir);
@ -93211,9 +93227,7 @@ DotnetInstallDir.default = {
mac: path_1.default.join(process.env['HOME'] + '', '.dotnet'),
windows: path_1.default.join(process.env['PROGRAMFILES'] + '', 'dotnet')
};
DotnetInstallDir.dirPath = process.env['DOTNET_INSTALL_DIR']
? DotnetInstallDir.convertInstallPathToAbsolute(process.env['DOTNET_INSTALL_DIR'])
: DotnetInstallDir.default[utils_1.PLATFORM];
DotnetInstallDir.dirPath = DotnetInstallDir.convertInstallPathToAbsolute(DotnetInstallDir.getInstallDirectory());
class DotnetCoreInstaller {
constructor(version, quality) {
this.version = version;
@ -93234,6 +93248,8 @@ class DotnetCoreInstaller {
.useArguments(utils_1.IS_WINDOWS ? '-Runtime' : '--runtime', 'dotnet')
// Use latest stable version
.useArguments(utils_1.IS_WINDOWS ? '-Channel' : '--channel', 'LTS')
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
.useInstallPath(DotnetInstallDir.dirPath)
.execute();
if (runtimeInstallOutput.exitCode) {
/**
@ -93251,6 +93267,8 @@ class DotnetCoreInstaller {
.useArguments(utils_1.IS_WINDOWS ? '-SkipNonVersionedFiles' : '--skip-non-versioned-files')
// Use version provided by user
.useVersion(dotnetVersion, this.quality)
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
.useInstallPath(DotnetInstallDir.dirPath)
.execute();
if (dotnetInstallOutput.exitCode) {
throw new Error(`Failed to install dotnet, exit code: ${dotnetInstallOutput.exitCode}. ${dotnetInstallOutput.stderr}`);

View File

@ -182,6 +182,17 @@ export class DotnetInstallScript {
return this;
}
public useInstallPath(installPath: string) {
if (installPath == null) {
installPath = DotnetInstallDir.dirPath;
}
this.useArguments(
IS_WINDOWS ? '-Install-Dir' : '--install-dir',
installPath
);
return this;
}
public useVersion(dotnetVersion: DotnetVersion, quality?: QualityOptions) {
if (dotnetVersion.type) {
this.useArguments(dotnetVersion.type, dotnetVersion.value);
@ -222,11 +233,20 @@ export abstract class DotnetInstallDir {
windows: path.join(process.env['PROGRAMFILES'] + '', 'dotnet')
};
public static readonly dirPath = process.env['DOTNET_INSTALL_DIR']
? DotnetInstallDir.convertInstallPathToAbsolute(
process.env['DOTNET_INSTALL_DIR']
)
: DotnetInstallDir.default[PLATFORM];
private static getInstallDirectory() {
if (process.env['DOTNET_INSTALL_DIR'] != null) {
return process.env['DOTNET_INSTALL_DIR'];
}
if (process.env['RUNNER_TOOL_CACHE'] != null) {
return path.join(process.env['RUNNER_TOOL_CACHE'], 'dotnet');
}
return DotnetInstallDir.default[PLATFORM];
}
public static readonly dirPath =
DotnetInstallDir.convertInstallPathToAbsolute(
DotnetInstallDir.getInstallDirectory()
);
private static convertInstallPathToAbsolute(installDir: string): string {
if (path.isAbsolute(installDir)) return path.normalize(installDir);
@ -275,6 +295,8 @@ export class DotnetCoreInstaller {
.useArguments(IS_WINDOWS ? '-Runtime' : '--runtime', 'dotnet')
// Use latest stable version
.useArguments(IS_WINDOWS ? '-Channel' : '--channel', 'LTS')
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
.useInstallPath(DotnetInstallDir.dirPath)
.execute();
if (runtimeInstallOutput.exitCode) {
@ -298,6 +320,8 @@ export class DotnetCoreInstaller {
)
// Use version provided by user
.useVersion(dotnetVersion, this.quality)
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
.useInstallPath(DotnetInstallDir.dirPath)
.execute();
if (dotnetInstallOutput.exitCode) {