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' | ||||
| ); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										97
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										97
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -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,27 +279,22 @@ class DotnetCoreInstaller { | ||||
|         this.version = version; | ||||
|         this.quality = quality; | ||||
|     } | ||||
|     static convertInstallPathToAbsolute(installDir) { | ||||
|         let transformedPath; | ||||
|         if (path_1.default.isAbsolute(installDir)) { | ||||
|             transformedPath = installDir; | ||||
|         } | ||||
|         else { | ||||
|             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() { | ||||
|         if (process.env['DOTNET_INSTALL_DIR']) { | ||||
|         core.addPath(process.env['DOTNET_INSTALL_DIR']); | ||||
|         core.exportVariable('DOTNET_ROOT', process.env['DOTNET_INSTALL_DIR']); | ||||
|     } | ||||
|         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); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     setQuality(dotnetVersion, scriptArguments) { | ||||
|         const option = utils_1.IS_WINDOWS ? '-Quality' : '--quality'; | ||||
|         if (dotnetVersion.qualityFlag) { | ||||
| @ -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; | ||||
| }; | ||||
|  | ||||
							
								
								
									
										37
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										37
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -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( | ||||
| 
 | ||||
|   static { | ||||
|     const installationDirectoryWindows = path.join( | ||||
|       process.env['PROGRAMFILES'] + '', | ||||
|       'dotnet' | ||||
|     ); | ||||
|   private static readonly installationDirectoryLinux = '/usr/share/dotnet'; | ||||
|   private static readonly installationDirectoryMac = path.join( | ||||
|     const installationDirectoryLinux = '/usr/share/dotnet'; | ||||
|     const 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']); | ||||
|     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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ivan
						Ivan