mirror of
https://github.com/actions/setup-dotnet.git
synced 2025-08-20 07:35:10 +00:00
Avoid api calls for exact versions
This commit is contained in:
parent
082a8866f9
commit
b928c2d2d6
@ -121,13 +121,13 @@ describe('installer tests', () => {
|
||||
|
||||
it('Resolving a exact preview version works', async () => {
|
||||
const dotnetInstaller = new installer.DotnetCoreInstaller(
|
||||
'5.0.0-preview.4'
|
||||
'5.0.0-preview.6'
|
||||
);
|
||||
let versInfo = await dotnetInstaller.resolveInfos(
|
||||
new installer.DotNetVersionInfo('5.0.0-preview.4')
|
||||
new installer.DotNetVersionInfo('5.0.0-preview.6')
|
||||
);
|
||||
|
||||
expect(versInfo).toBe('5.0.0-preview.4');
|
||||
expect(versInfo).toBe('5.0.0-preview.6');
|
||||
}, 100000);
|
||||
|
||||
it('Acquires version of dotnet if no matching version is installed', async () => {
|
||||
|
22
dist/index.js
vendored
22
dist/index.js
vendored
@ -16723,7 +16723,7 @@ class DotnetCoreInstaller {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let output = '';
|
||||
let resultCode = 0;
|
||||
let calculatedVersion = yield this.resolveInfos(new DotNetVersionInfo(this.version));
|
||||
let calculatedVersion = yield this.resolveVersion(new DotNetVersionInfo(this.version));
|
||||
var envVariables = {};
|
||||
for (let key in process.env) {
|
||||
if (process.env[key]) {
|
||||
@ -16792,11 +16792,12 @@ class DotnetCoreInstaller {
|
||||
}
|
||||
});
|
||||
}
|
||||
// OsSuffixes - The suffix which is a part of the file name ex- linux-x64, windows-x86
|
||||
// Type - SDK / Runtime
|
||||
// versionInfo - versionInfo of the SDK/Runtime
|
||||
resolveInfos(versionInfo) {
|
||||
resolveVersion(versionInfo) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (versionInfo.isExactVersion()) {
|
||||
return versionInfo.version();
|
||||
}
|
||||
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
||||
allowRetries: true,
|
||||
maxRetries: 3
|
||||
@ -16810,14 +16811,15 @@ class DotnetCoreInstaller {
|
||||
semver.satisfies(releaseInfo['sdk']['version-display'], versionInfo.version()));
|
||||
});
|
||||
// Exclude versions that are newer than the latest if using not exact
|
||||
if (!versionInfo.isExactVersion()) {
|
||||
let latestSdk = releasesResult['latest-sdk'];
|
||||
releasesInfo = releasesInfo.filter((releaseInfo) => semver.lte(releaseInfo['sdk']['version'], latestSdk));
|
||||
}
|
||||
let latestSdk = releasesResult['latest-sdk'];
|
||||
releasesInfo = releasesInfo.filter((releaseInfo) => semver.lte(releaseInfo['sdk']['version'], latestSdk));
|
||||
// Sort for latest version
|
||||
releasesInfo = releasesInfo.sort((a, b) => semver.rcompare(a['sdk']['version'], b['sdk']['version']));
|
||||
let selectedVersion = releasesInfo[0]['sdk']['version'];
|
||||
return selectedVersion;
|
||||
if (releasesInfo.length == 0) {
|
||||
throw `Could not construct download URL. Please ensure that specified version ${versionInfo.version()} is valid.`;
|
||||
}
|
||||
let release = releasesInfo[0];
|
||||
return release['sdk']['version'];
|
||||
});
|
||||
}
|
||||
getReleasesJsonUrl(httpClient, versionParts) {
|
||||
|
@ -96,7 +96,7 @@ export class DotnetCoreInstaller {
|
||||
let output = '';
|
||||
let resultCode = 0;
|
||||
|
||||
let calculatedVersion = await this.resolveInfos(
|
||||
let calculatedVersion = await this.resolveVersion(
|
||||
new DotNetVersionInfo(this.version)
|
||||
);
|
||||
|
||||
@ -178,10 +178,12 @@ export class DotnetCoreInstaller {
|
||||
}
|
||||
}
|
||||
|
||||
// OsSuffixes - The suffix which is a part of the file name ex- linux-x64, windows-x86
|
||||
// Type - SDK / Runtime
|
||||
// versionInfo - versionInfo of the SDK/Runtime
|
||||
async resolveInfos(versionInfo: DotNetVersionInfo): Promise<string> {
|
||||
async resolveVersion(versionInfo: DotNetVersionInfo): Promise<string> {
|
||||
if (versionInfo.isExactVersion()) {
|
||||
return versionInfo.version();
|
||||
}
|
||||
|
||||
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
||||
allowRetries: true,
|
||||
maxRetries: 3
|
||||
@ -209,22 +211,23 @@ export class DotnetCoreInstaller {
|
||||
});
|
||||
|
||||
// Exclude versions that are newer than the latest if using not exact
|
||||
if (!versionInfo.isExactVersion()) {
|
||||
let latestSdk: string = releasesResult['latest-sdk'];
|
||||
let latestSdk: string = releasesResult['latest-sdk'];
|
||||
|
||||
releasesInfo = releasesInfo.filter((releaseInfo: any) =>
|
||||
semver.lte(releaseInfo['sdk']['version'], latestSdk)
|
||||
);
|
||||
}
|
||||
releasesInfo = releasesInfo.filter((releaseInfo: any) =>
|
||||
semver.lte(releaseInfo['sdk']['version'], latestSdk)
|
||||
);
|
||||
|
||||
// Sort for latest version
|
||||
releasesInfo = releasesInfo.sort((a, b) =>
|
||||
semver.rcompare(a['sdk']['version'], b['sdk']['version'])
|
||||
);
|
||||
|
||||
let selectedVersion = releasesInfo[0]['sdk']['version'];
|
||||
if (releasesInfo.length == 0) {
|
||||
throw `Could not construct download URL. Please ensure that specified version ${versionInfo.version()} is valid.`;
|
||||
}
|
||||
|
||||
return selectedVersion;
|
||||
let release = releasesInfo[0];
|
||||
return release['sdk']['version'];
|
||||
}
|
||||
|
||||
private async getReleasesJsonUrl(
|
||||
|
Loading…
x
Reference in New Issue
Block a user