Fix review points

This commit is contained in:
IvanZosimov 2023-04-13 10:33:52 +02:00
parent 7358a44590
commit 559e47b01b
3 changed files with 28 additions and 30 deletions

View File

@ -165,30 +165,6 @@ jobs:
shell: pwsh shell: pwsh
run: __tests__/verify-dotnet.ps1 3.1 2.2 run: __tests__/verify-dotnet.ps1 3.1 2.2
test-setup-with-ABCxx-syntax:
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Clear toolcache
shell: pwsh
run: __tests__/clear-toolcache.ps1 ${{ runner.os }}
- name: Setup dotnet '5.0.2xx'
uses: ./
with:
dotnet-version: '5.0.2xx'
- name: Setup dotnet '7.0.1xx'
uses: ./
with:
dotnet-version: '7.0.1xx'
- name: Verify dotnet
shell: pwsh
run: __tests__/verify-dotnet.ps1 5.0.2 7.0.1
test-setup-global-json-specified-and-version: test-setup-global-json-specified-and-version:
runs-on: ${{ matrix.operating-system }} runs-on: ${{ matrix.operating-system }}
strategy: strategy:

16
dist/index.js vendored
View File

@ -243,6 +243,11 @@ const path_1 = __importDefault(__nccwpck_require__(1017));
const os_1 = __importDefault(__nccwpck_require__(2037)); const os_1 = __importDefault(__nccwpck_require__(2037));
const semver_1 = __importDefault(__nccwpck_require__(5911)); const semver_1 = __importDefault(__nccwpck_require__(5911));
const utils_1 = __nccwpck_require__(918); const utils_1 = __nccwpck_require__(918);
var DotnetInstallerLimits;
(function (DotnetInstallerLimits) {
DotnetInstallerLimits[DotnetInstallerLimits["QualityInputMinimalMajorTag"] = 6] = "QualityInputMinimalMajorTag";
DotnetInstallerLimits[DotnetInstallerLimits["LatestPatchSyntaxMinimalMajorTag"] = 5] = "LatestPatchSyntaxMinimalMajorTag";
})(DotnetInstallerLimits || (DotnetInstallerLimits = {}));
class DotnetVersionResolver { class DotnetVersionResolver {
constructor(version) { constructor(version) {
this.inputVersion = version.trim(); this.inputVersion = version.trim();
@ -267,7 +272,9 @@ class DotnetVersionResolver {
isLatestPatchSyntax() { isLatestPatchSyntax() {
var _b, _c; var _b, _c;
const majorTag = (_c = (_b = this.inputVersion.match(/^(?<majorTag>\d+)\.\d+\.\d{1}x{2}$/)) === null || _b === void 0 ? void 0 : _b.groups) === null || _c === void 0 ? void 0 : _c.majorTag; const majorTag = (_c = (_b = this.inputVersion.match(/^(?<majorTag>\d+)\.\d+\.\d{1}x{2}$/)) === null || _b === void 0 ? void 0 : _b.groups) === null || _c === void 0 ? void 0 : _c.majorTag;
if (majorTag && parseInt(majorTag) < 5) { if (majorTag &&
parseInt(majorTag) <
DotnetInstallerLimits.LatestPatchSyntaxMinimalMajorTag) {
throw new Error(`'dotnet-version' was supplied in invalid format: ${this.inputVersion}! The A.B.Cxx syntax is available since the .NET 5.0 release.`); throw new Error(`'dotnet-version' was supplied in invalid format: ${this.inputVersion}! The A.B.Cxx syntax is available since the .NET 5.0 release.`);
} }
return majorTag ? true : false; return majorTag ? true : false;
@ -290,10 +297,13 @@ class DotnetVersionResolver {
this.resolvedArgument.value = yield this.getLatestByMajorTag(major); this.resolvedArgument.value = yield this.getLatestByMajorTag(major);
} }
else { else {
// Resolve LTS version of .NET if "dotnet-version" is specified as *, x or X // If "dotnet-version" is specified as *, x or X resolve latest version of .NET explicitly from LTS channel. The version argument will be set to "latest" by default.
this.resolvedArgument.value = 'LTS'; this.resolvedArgument.value = 'LTS';
} }
this.resolvedArgument.qualityFlag = parseInt(major) >= 6 ? true : false; this.resolvedArgument.qualityFlag =
parseInt(major) >= DotnetInstallerLimits.QualityInputMinimalMajorTag
? true
: false;
}); });
} }
createDotNetVersion() { createDotNetVersion() {

View File

@ -17,6 +17,11 @@ export interface DotnetVersion {
qualityFlag: boolean; qualityFlag: boolean;
} }
enum DotnetInstallerLimits {
QualityInputMinimalMajorTag = 6,
LatestPatchSyntaxMinimalMajorTag = 5
}
export class DotnetVersionResolver { export class DotnetVersionResolver {
private inputVersion: string; private inputVersion: string;
private resolvedArgument: DotnetVersion; private resolvedArgument: DotnetVersion;
@ -47,7 +52,11 @@ export class DotnetVersionResolver {
const majorTag = this.inputVersion.match( const majorTag = this.inputVersion.match(
/^(?<majorTag>\d+)\.\d+\.\d{1}x{2}$/ /^(?<majorTag>\d+)\.\d+\.\d{1}x{2}$/
)?.groups?.majorTag; )?.groups?.majorTag;
if (majorTag && parseInt(majorTag) < 5) { if (
majorTag &&
parseInt(majorTag) <
DotnetInstallerLimits.LatestPatchSyntaxMinimalMajorTag
) {
throw new Error( throw new Error(
`'dotnet-version' was supplied in invalid format: ${this.inputVersion}! The A.B.Cxx syntax is available since the .NET 5.0 release.` `'dotnet-version' was supplied in invalid format: ${this.inputVersion}! The A.B.Cxx syntax is available since the .NET 5.0 release.`
); );
@ -70,10 +79,13 @@ export class DotnetVersionResolver {
} else if (this.isNumericTag(major)) { } else if (this.isNumericTag(major)) {
this.resolvedArgument.value = await this.getLatestByMajorTag(major); this.resolvedArgument.value = await this.getLatestByMajorTag(major);
} else { } else {
// Resolve LTS version of .NET if "dotnet-version" is specified as *, x or X // If "dotnet-version" is specified as *, x or X resolve latest version of .NET explicitly from LTS channel. The version argument will be set to "latest" by default.
this.resolvedArgument.value = 'LTS'; this.resolvedArgument.value = 'LTS';
} }
this.resolvedArgument.qualityFlag = parseInt(major) >= 6 ? true : false; this.resolvedArgument.qualityFlag =
parseInt(major) >= DotnetInstallerLimits.QualityInputMinimalMajorTag
? true
: false;
} }
public async createDotNetVersion(): Promise<DotnetVersion> { public async createDotNetVersion(): Promise<DotnetVersion> {