Skip to content

Commit efeedaa

Browse files
committed
Explicity set installation path
Github actions tool guidelines, is to use the worker tool cache, instead of system-wide install path.
1 parent 4d6c8fc commit efeedaa

File tree

2 files changed

+50
-8
lines changed

2 files changed

+50
-8
lines changed

dist/setup/index.js

+21-3
Original file line numberDiff line numberDiff line change
@@ -93164,6 +93164,13 @@ class DotnetInstallScript {
9316493164
this.scriptArguments.push(...args);
9316593165
return this;
9316693166
}
93167+
useInstallPath(installPath) {
93168+
if (installPath == null) {
93169+
installPath = DotnetInstallDir.dirPath;
93170+
}
93171+
this.useArguments(utils_1.IS_WINDOWS ? '-Install-Dir' : '--install-dir', installPath);
93172+
return this;
93173+
}
9316793174
useVersion(dotnetVersion, quality) {
9316893175
if (dotnetVersion.type) {
9316993176
this.useArguments(dotnetVersion.type, dotnetVersion.value);
@@ -93189,6 +93196,15 @@ class DotnetInstallScript {
9318993196
}
9319093197
exports.DotnetInstallScript = DotnetInstallScript;
9319193198
class DotnetInstallDir {
93199+
static getInstallDirectory() {
93200+
if (process.env['DOTNET_INSTALL_DIR'] != null) {
93201+
return process.env['DOTNET_INSTALL_DIR'];
93202+
}
93203+
if (process.env['RUNNER_TOOL_CACHE'] != null) {
93204+
return path_1.default.join(process.env['RUNNER_TOOL_CACHE'], 'dotnet');
93205+
}
93206+
return DotnetInstallDir.default[utils_1.PLATFORM];
93207+
}
9319293208
static convertInstallPathToAbsolute(installDir) {
9319393209
if (path_1.default.isAbsolute(installDir))
9319493210
return path_1.default.normalize(installDir);
@@ -93211,9 +93227,7 @@ DotnetInstallDir.default = {
9321193227
mac: path_1.default.join(process.env['HOME'] + '', '.dotnet'),
9321293228
windows: path_1.default.join(process.env['PROGRAMFILES'] + '', 'dotnet')
9321393229
};
93214-
DotnetInstallDir.dirPath = process.env['DOTNET_INSTALL_DIR']
93215-
? DotnetInstallDir.convertInstallPathToAbsolute(process.env['DOTNET_INSTALL_DIR'])
93216-
: DotnetInstallDir.default[utils_1.PLATFORM];
93230+
DotnetInstallDir.dirPath = DotnetInstallDir.convertInstallPathToAbsolute(DotnetInstallDir.getInstallDirectory());
9321793231
class DotnetCoreInstaller {
9321893232
constructor(version, quality) {
9321993233
this.version = version;
@@ -93234,6 +93248,8 @@ class DotnetCoreInstaller {
9323493248
.useArguments(utils_1.IS_WINDOWS ? '-Runtime' : '--runtime', 'dotnet')
9323593249
// Use latest stable version
9323693250
.useArguments(utils_1.IS_WINDOWS ? '-Channel' : '--channel', 'LTS')
93251+
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
93252+
.useInstallPath(DotnetInstallDir.dirPath)
9323793253
.execute();
9323893254
if (runtimeInstallOutput.exitCode) {
9323993255
/**
@@ -93251,6 +93267,8 @@ class DotnetCoreInstaller {
9325193267
.useArguments(utils_1.IS_WINDOWS ? '-SkipNonVersionedFiles' : '--skip-non-versioned-files')
9325293268
// Use version provided by user
9325393269
.useVersion(dotnetVersion, this.quality)
93270+
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
93271+
.useInstallPath(DotnetInstallDir.dirPath)
9325493272
.execute();
9325593273
if (dotnetInstallOutput.exitCode) {
9325693274
throw new Error(`Failed to install dotnet, exit code: ${dotnetInstallOutput.exitCode}. ${dotnetInstallOutput.stderr}`);

src/installer.ts

+29-5
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,17 @@ export class DotnetInstallScript {
182182
return this;
183183
}
184184

185+
public useInstallPath(installPath: string) {
186+
if (installPath == null) {
187+
installPath = DotnetInstallDir.dirPath;
188+
}
189+
this.useArguments(
190+
IS_WINDOWS ? '-Install-Dir' : '--install-dir',
191+
installPath
192+
);
193+
return this;
194+
}
195+
185196
public useVersion(dotnetVersion: DotnetVersion, quality?: QualityOptions) {
186197
if (dotnetVersion.type) {
187198
this.useArguments(dotnetVersion.type, dotnetVersion.value);
@@ -222,11 +233,20 @@ export abstract class DotnetInstallDir {
222233
windows: path.join(process.env['PROGRAMFILES'] + '', 'dotnet')
223234
};
224235

225-
public static readonly dirPath = process.env['DOTNET_INSTALL_DIR']
226-
? DotnetInstallDir.convertInstallPathToAbsolute(
227-
process.env['DOTNET_INSTALL_DIR']
228-
)
229-
: DotnetInstallDir.default[PLATFORM];
236+
private static getInstallDirectory() {
237+
if (process.env['DOTNET_INSTALL_DIR'] != null) {
238+
return process.env['DOTNET_INSTALL_DIR'];
239+
}
240+
if (process.env['RUNNER_TOOL_CACHE'] != null) {
241+
return path.join(process.env['RUNNER_TOOL_CACHE'], 'dotnet');
242+
}
243+
return DotnetInstallDir.default[PLATFORM];
244+
}
245+
246+
public static readonly dirPath =
247+
DotnetInstallDir.convertInstallPathToAbsolute(
248+
DotnetInstallDir.getInstallDirectory()
249+
);
230250

231251
private static convertInstallPathToAbsolute(installDir: string): string {
232252
if (path.isAbsolute(installDir)) return path.normalize(installDir);
@@ -275,6 +295,8 @@ export class DotnetCoreInstaller {
275295
.useArguments(IS_WINDOWS ? '-Runtime' : '--runtime', 'dotnet')
276296
// Use latest stable version
277297
.useArguments(IS_WINDOWS ? '-Channel' : '--channel', 'LTS')
298+
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
299+
.useInstallPath(DotnetInstallDir.dirPath)
278300
.execute();
279301

280302
if (runtimeInstallOutput.exitCode) {
@@ -298,6 +320,8 @@ export class DotnetCoreInstaller {
298320
)
299321
// Use version provided by user
300322
.useVersion(dotnetVersion, this.quality)
323+
// Explicitly set the install path (see https://github.com/actions/setup-dotnet/issues/360)
324+
.useInstallPath(DotnetInstallDir.dirPath)
301325
.execute();
302326

303327
if (dotnetInstallOutput.exitCode) {

0 commit comments

Comments
 (0)