Add logic for processing DOTNET_INSTALL_DIR environment variable (#332)
This commit is contained in:
parent
70c3f4d098
commit
4d4a70f4a5
|
@ -7,5 +7,6 @@
|
|||
"trailingComma": "none",
|
||||
"bracketSpacing": false,
|
||||
"arrowParens": "avoid",
|
||||
"parser": "typescript"
|
||||
"parser": "typescript",
|
||||
"endOfLine": "auto"
|
||||
}
|
|
@ -195,11 +195,18 @@ Some environment variables may be necessary for your particular case or to impro
|
|||
|
||||
| **Env.variable** | **Description** | **Default value** |
|
||||
| ----------- | ----------- | ----------- |
|
||||
| DOTNET_INSTALL_DIR |Specifies a directory where .NET SDKs should be installed by the action|*isn't set*|
|
||||
| DOTNET_INSTALL_DIR |Specifies a directory where .NET SDKs should be installed by the action.|*default value for each OS* |
|
||||
| DOTNET_NOLOGO |Removes logo and telemetry message from first run of dotnet cli|*false*|
|
||||
| DOTNET_CLI_TELEMETRY_OPTOUT |Opt-out of telemetry being sent to Microsoft|*false*|
|
||||
| DOTNET_MULTILEVEL_LOOKUP |Configures whether the global install location is used as a fall-back|*true*|
|
||||
|
||||
The default value of the `DOTNET_INSTALL_DIR` environment variable depends on the operation system which is used on a runner:
|
||||
| **Operation system** | **Default value** |
|
||||
| ----------- | ----------- |
|
||||
| **Windows** | `C:\Program Files\dotnet` |
|
||||
| **Ubuntu** | `/usr/share/dotnet` |
|
||||
| **macOS** | `/Users/runner/.dotnet` |
|
||||
|
||||
**Example usage**:
|
||||
```yml
|
||||
build:
|
||||
|
|
|
@ -5,11 +5,7 @@ import path from 'path';
|
|||
const fakeSourcesDirForTesting = path.join(
|
||||
__dirname,
|
||||
'runner',
|
||||
path.join(
|
||||
Math.random()
|
||||
.toString(36)
|
||||
.substring(7)
|
||||
),
|
||||
path.join(Math.random().toString(36).substring(7)),
|
||||
's'
|
||||
);
|
||||
|
||||
|
|
|
@ -8,7 +8,11 @@
|
|||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
|
@ -21,7 +25,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
|
@ -152,7 +156,11 @@ function writeFeedToFile(feedUrl, existingFileLocation, tempFileLocation) {
|
|||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
|
@ -165,7 +173,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
|
@ -181,6 +189,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
var _a;
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.DotnetCoreInstaller = exports.DotnetVersionResolver = void 0;
|
||||
// Load tempDirectory before it gets wiped by tool-cache
|
||||
|
@ -191,6 +200,7 @@ const hc = __importStar(__nccwpck_require__(6255));
|
|||
const fs_1 = __nccwpck_require__(7147);
|
||||
const promises_1 = __nccwpck_require__(3292);
|
||||
const path_1 = __importDefault(__nccwpck_require__(1017));
|
||||
const os_1 = __importDefault(__nccwpck_require__(2037));
|
||||
const semver_1 = __importDefault(__nccwpck_require__(5911));
|
||||
const utils_1 = __nccwpck_require__(918);
|
||||
class DotnetVersionResolver {
|
||||
|
@ -269,26 +279,21 @@ class DotnetCoreInstaller {
|
|||
this.version = version;
|
||||
this.quality = quality;
|
||||
}
|
||||
static addToPath() {
|
||||
if (process.env['DOTNET_INSTALL_DIR']) {
|
||||
core.addPath(process.env['DOTNET_INSTALL_DIR']);
|
||||
core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']);
|
||||
static convertInstallPathToAbsolute(installDir) {
|
||||
let transformedPath;
|
||||
if (path_1.default.isAbsolute(installDir)) {
|
||||
transformedPath = installDir;
|
||||
}
|
||||
else {
|
||||
if (utils_1.IS_WINDOWS) {
|
||||
core.addPath(DotnetCoreInstaller.installationDirectoryWindows);
|
||||
core.exportVariable('DOTNET_ROOT', DotnetCoreInstaller.installationDirectoryWindows);
|
||||
}
|
||||
else if (utils_1.IS_LINUX) {
|
||||
core.addPath(DotnetCoreInstaller.installationDirectoryLinux);
|
||||
core.exportVariable('DOTNET_ROOT', DotnetCoreInstaller.installationDirectoryLinux);
|
||||
}
|
||||
else {
|
||||
// This is the default set in install-dotnet.sh
|
||||
core.addPath(DotnetCoreInstaller.installationDirectoryMac);
|
||||
core.exportVariable('DOTNET_ROOT', DotnetCoreInstaller.installationDirectoryMac);
|
||||
}
|
||||
transformedPath = installDir.startsWith('~')
|
||||
? path_1.default.join(os_1.default.homedir(), installDir.slice(1))
|
||||
: (transformedPath = path_1.default.join(process.cwd(), installDir));
|
||||
}
|
||||
return path_1.default.normalize(transformedPath);
|
||||
}
|
||||
static addToPath() {
|
||||
core.addPath(process.env['DOTNET_INSTALL_DIR']);
|
||||
core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']);
|
||||
}
|
||||
setQuality(dotnetVersion, scriptArguments) {
|
||||
const option = utils_1.IS_WINDOWS ? '-Quality' : '--quality';
|
||||
|
@ -333,16 +338,12 @@ class DotnetCoreInstaller {
|
|||
if (process.env['no_proxy'] != null) {
|
||||
scriptArguments.push(`-ProxyBypassList ${process.env['no_proxy']}`);
|
||||
}
|
||||
if (!process.env['DOTNET_INSTALL_DIR']) {
|
||||
process.env['DOTNET_INSTALL_DIR'] =
|
||||
DotnetCoreInstaller.installationDirectoryWindows;
|
||||
}
|
||||
scriptPath =
|
||||
(yield io.which('pwsh', false)) || (yield io.which('powershell', true));
|
||||
scriptArguments = windowsDefaultOptions.concat(scriptArguments);
|
||||
}
|
||||
else {
|
||||
fs_1.chmodSync(escapedScript, '777');
|
||||
(0, fs_1.chmodSync)(escapedScript, '777');
|
||||
scriptPath = yield io.which(escapedScript, true);
|
||||
scriptArguments = [];
|
||||
if (dotnetVersion.type) {
|
||||
|
@ -351,11 +352,6 @@ class DotnetCoreInstaller {
|
|||
if (this.quality) {
|
||||
this.setQuality(dotnetVersion, scriptArguments);
|
||||
}
|
||||
if (!process.env['DOTNET_INSTALL_DIR']) {
|
||||
process.env['DOTNET_INSTALL_DIR'] = utils_1.IS_LINUX
|
||||
? DotnetCoreInstaller.installationDirectoryLinux
|
||||
: DotnetCoreInstaller.installationDirectoryMac;
|
||||
}
|
||||
}
|
||||
// process.env must be explicitly passed in for DOTNET_INSTALL_DIR to be used
|
||||
const getExecOutputOptions = {
|
||||
|
@ -366,12 +362,13 @@ class DotnetCoreInstaller {
|
|||
if (exitCode) {
|
||||
throw new Error(`Failed to install dotnet ${exitCode}. ${stdout}`);
|
||||
}
|
||||
return this.outputDotnetVersion(dotnetVersion.value, process.env['DOTNET_INSTALL_DIR']);
|
||||
return this.outputDotnetVersion(dotnetVersion.value);
|
||||
});
|
||||
}
|
||||
outputDotnetVersion(version, installationPath) {
|
||||
outputDotnetVersion(version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let versionsOnRunner = yield promises_1.readdir(path_1.default.join(installationPath.replace(/'/g, ''), 'sdk'));
|
||||
const installationPath = process.env['DOTNET_INSTALL_DIR'];
|
||||
let versionsOnRunner = yield (0, promises_1.readdir)(path_1.default.join(installationPath.replace(/'/g, ''), 'sdk'));
|
||||
let installedVersion = semver_1.default.maxSatisfying(versionsOnRunner, version, {
|
||||
includePrerelease: true
|
||||
});
|
||||
|
@ -380,9 +377,27 @@ class DotnetCoreInstaller {
|
|||
}
|
||||
}
|
||||
exports.DotnetCoreInstaller = DotnetCoreInstaller;
|
||||
DotnetCoreInstaller.installationDirectoryWindows = path_1.default.join(process.env['PROGRAMFILES'] + '', 'dotnet');
|
||||
DotnetCoreInstaller.installationDirectoryLinux = '/usr/share/dotnet';
|
||||
DotnetCoreInstaller.installationDirectoryMac = path_1.default.join(process.env['HOME'] + '', '.dotnet');
|
||||
_a = DotnetCoreInstaller;
|
||||
(() => {
|
||||
const installationDirectoryWindows = path_1.default.join(process.env['PROGRAMFILES'] + '', 'dotnet');
|
||||
const installationDirectoryLinux = '/usr/share/dotnet';
|
||||
const installationDirectoryMac = path_1.default.join(process.env['HOME'] + '', '.dotnet');
|
||||
const dotnetInstallDir = process.env['DOTNET_INSTALL_DIR'];
|
||||
if (dotnetInstallDir) {
|
||||
process.env['DOTNET_INSTALL_DIR'] =
|
||||
_a.convertInstallPathToAbsolute(dotnetInstallDir);
|
||||
}
|
||||
else {
|
||||
if (utils_1.IS_WINDOWS) {
|
||||
process.env['DOTNET_INSTALL_DIR'] = installationDirectoryWindows;
|
||||
}
|
||||
else {
|
||||
process.env['DOTNET_INSTALL_DIR'] = utils_1.IS_LINUX
|
||||
? installationDirectoryLinux
|
||||
: installationDirectoryMac;
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
@ -394,7 +409,11 @@ DotnetCoreInstaller.installationDirectoryMac = path_1.default.join(process.env['
|
|||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
|
@ -407,7 +426,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "setup-dotnet",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "setup-dotnet",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.0",
|
||||
|
@ -26,9 +26,9 @@
|
|||
"husky": "^8.0.1",
|
||||
"jest": "^27.2.5",
|
||||
"jest-circus": "^27.2.5",
|
||||
"prettier": "^1.19.1",
|
||||
"prettier": "^2.7.1",
|
||||
"ts-jest": "^27.0.5",
|
||||
"typescript": "^3.9.7",
|
||||
"typescript": "^4.8.4",
|
||||
"wget-improved": "^3.2.1"
|
||||
}
|
||||
},
|
||||
|
@ -3883,15 +3883,18 @@
|
|||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "1.19.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
|
||||
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
|
||||
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/pretty-format": {
|
||||
|
@ -4430,9 +4433,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "3.9.7",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
|
||||
"integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
|
||||
"version": "4.8.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
|
||||
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
|
@ -7723,9 +7726,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "1.19.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
|
||||
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
|
||||
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-format": {
|
||||
|
@ -8123,9 +8126,9 @@
|
|||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.9.7",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
|
||||
"integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
|
||||
"version": "4.8.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
|
||||
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"universal-user-agent": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "setup-dotnet",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"private": true,
|
||||
"description": "setup dotnet action",
|
||||
"main": "lib/setup-dotnet.js",
|
||||
|
@ -41,9 +41,9 @@
|
|||
"husky": "^8.0.1",
|
||||
"jest": "^27.2.5",
|
||||
"jest-circus": "^27.2.5",
|
||||
"prettier": "^1.19.1",
|
||||
"prettier": "^2.7.1",
|
||||
"ts-jest": "^27.0.5",
|
||||
"typescript": "^3.9.7",
|
||||
"typescript": "^4.8.4",
|
||||
"wget-improved": "^3.2.1"
|
||||
},
|
||||
"jest": {
|
||||
|
|
|
@ -6,6 +6,7 @@ import * as hc from '@actions/http-client';
|
|||
import {chmodSync} from 'fs';
|
||||
import {readdir} from 'fs/promises';
|
||||
import path from 'path';
|
||||
import os from 'os';
|
||||
import semver from 'semver';
|
||||
import {IS_LINUX, IS_WINDOWS} from './utils';
|
||||
import {QualityOptions} from './setup-dotnet';
|
||||
|
@ -112,40 +113,29 @@ export class DotnetVersionResolver {
|
|||
export class DotnetCoreInstaller {
|
||||
private version: string;
|
||||
private quality: QualityOptions;
|
||||
private static readonly installationDirectoryWindows = path.join(
|
||||
process.env['PROGRAMFILES'] + '',
|
||||
'dotnet'
|
||||
);
|
||||
private static readonly installationDirectoryLinux = '/usr/share/dotnet';
|
||||
private static readonly installationDirectoryMac = path.join(
|
||||
process.env['HOME'] + '',
|
||||
'.dotnet'
|
||||
);
|
||||
|
||||
static addToPath() {
|
||||
if (process.env['DOTNET_INSTALL_DIR']) {
|
||||
core.addPath(process.env['DOTNET_INSTALL_DIR']);
|
||||
core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']);
|
||||
static {
|
||||
const installationDirectoryWindows = path.join(
|
||||
process.env['PROGRAMFILES'] + '',
|
||||
'dotnet'
|
||||
);
|
||||
const installationDirectoryLinux = '/usr/share/dotnet';
|
||||
const installationDirectoryMac = path.join(
|
||||
process.env['HOME'] + '',
|
||||
'.dotnet'
|
||||
);
|
||||
const dotnetInstallDir: string | undefined =
|
||||
process.env['DOTNET_INSTALL_DIR'];
|
||||
if (dotnetInstallDir) {
|
||||
process.env['DOTNET_INSTALL_DIR'] =
|
||||
this.convertInstallPathToAbsolute(dotnetInstallDir);
|
||||
} else {
|
||||
if (IS_WINDOWS) {
|
||||
core.addPath(DotnetCoreInstaller.installationDirectoryWindows);
|
||||
core.exportVariable(
|
||||
'DOTNET_ROOT',
|
||||
DotnetCoreInstaller.installationDirectoryWindows
|
||||
);
|
||||
} else if (IS_LINUX) {
|
||||
core.addPath(DotnetCoreInstaller.installationDirectoryLinux);
|
||||
core.exportVariable(
|
||||
'DOTNET_ROOT',
|
||||
DotnetCoreInstaller.installationDirectoryLinux
|
||||
);
|
||||
process.env['DOTNET_INSTALL_DIR'] = installationDirectoryWindows;
|
||||
} else {
|
||||
// This is the default set in install-dotnet.sh
|
||||
core.addPath(DotnetCoreInstaller.installationDirectoryMac);
|
||||
core.exportVariable(
|
||||
'DOTNET_ROOT',
|
||||
DotnetCoreInstaller.installationDirectoryMac
|
||||
);
|
||||
process.env['DOTNET_INSTALL_DIR'] = IS_LINUX
|
||||
? installationDirectoryLinux
|
||||
: installationDirectoryMac;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -155,6 +145,23 @@ export class DotnetCoreInstaller {
|
|||
this.quality = quality;
|
||||
}
|
||||
|
||||
private static convertInstallPathToAbsolute(installDir: string): string {
|
||||
let transformedPath;
|
||||
if (path.isAbsolute(installDir)) {
|
||||
transformedPath = installDir;
|
||||
} else {
|
||||
transformedPath = installDir.startsWith('~')
|
||||
? path.join(os.homedir(), installDir.slice(1))
|
||||
: (transformedPath = path.join(process.cwd(), installDir));
|
||||
}
|
||||
return path.normalize(transformedPath);
|
||||
}
|
||||
|
||||
static addToPath() {
|
||||
core.addPath(process.env['DOTNET_INSTALL_DIR']!);
|
||||
core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']);
|
||||
}
|
||||
|
||||
private setQuality(
|
||||
dotnetVersion: DotnetVersion,
|
||||
scriptArguments: string[]
|
||||
|
@ -208,11 +215,6 @@ export class DotnetCoreInstaller {
|
|||
scriptArguments.push(`-ProxyBypassList ${process.env['no_proxy']}`);
|
||||
}
|
||||
|
||||
if (!process.env['DOTNET_INSTALL_DIR']) {
|
||||
process.env['DOTNET_INSTALL_DIR'] =
|
||||
DotnetCoreInstaller.installationDirectoryWindows;
|
||||
}
|
||||
|
||||
scriptPath =
|
||||
(await io.which('pwsh', false)) || (await io.which('powershell', true));
|
||||
scriptArguments = windowsDefaultOptions.concat(scriptArguments);
|
||||
|
@ -228,12 +230,6 @@ export class DotnetCoreInstaller {
|
|||
if (this.quality) {
|
||||
this.setQuality(dotnetVersion, scriptArguments);
|
||||
}
|
||||
|
||||
if (!process.env['DOTNET_INSTALL_DIR']) {
|
||||
process.env['DOTNET_INSTALL_DIR'] = IS_LINUX
|
||||
? DotnetCoreInstaller.installationDirectoryLinux
|
||||
: DotnetCoreInstaller.installationDirectoryMac;
|
||||
}
|
||||
}
|
||||
// process.env must be explicitly passed in for DOTNET_INSTALL_DIR to be used
|
||||
const getExecOutputOptions = {
|
||||
|
@ -249,16 +245,11 @@ export class DotnetCoreInstaller {
|
|||
throw new Error(`Failed to install dotnet ${exitCode}. ${stdout}`);
|
||||
}
|
||||
|
||||
return this.outputDotnetVersion(
|
||||
dotnetVersion.value,
|
||||
process.env['DOTNET_INSTALL_DIR']
|
||||
);
|
||||
return this.outputDotnetVersion(dotnetVersion.value);
|
||||
}
|
||||
|
||||
private async outputDotnetVersion(
|
||||
version,
|
||||
installationPath
|
||||
): Promise<string> {
|
||||
private async outputDotnetVersion(version): Promise<string> {
|
||||
const installationPath = process.env['DOTNET_INSTALL_DIR']!;
|
||||
let versionsOnRunner: string[] = await readdir(
|
||||
path.join(installationPath.replace(/'/g, ''), 'sdk')
|
||||
);
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
|
||||
|
||||
/* Additional Checks */
|
||||
"useUnknownInCatchVariables": false, /* Type catch clause variables as 'unknown' instead of 'any'. */
|
||||
// "noUnusedLocals": true, /* Report errors on unused locals. */
|
||||
// "noUnusedParameters": true, /* Report errors on unused parameters. */
|
||||
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
|
||||
|
|
Loading…
Reference in New Issue