mirror of
https://github.com/actions/setup-dotnet.git
synced 2025-08-20 15:40:20 +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 () => {
|
it('Resolving a exact preview version works', async () => {
|
||||||
const dotnetInstaller = new installer.DotnetCoreInstaller(
|
const dotnetInstaller = new installer.DotnetCoreInstaller(
|
||||||
'5.0.0-preview.4'
|
'5.0.0-preview.6'
|
||||||
);
|
);
|
||||||
let versInfo = await dotnetInstaller.resolveInfos(
|
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);
|
}, 100000);
|
||||||
|
|
||||||
it('Acquires version of dotnet if no matching version is installed', async () => {
|
it('Acquires version of dotnet if no matching version is installed', async () => {
|
||||||
|
18
dist/index.js
vendored
18
dist/index.js
vendored
@ -16723,7 +16723,7 @@ class DotnetCoreInstaller {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let output = '';
|
let output = '';
|
||||||
let resultCode = 0;
|
let resultCode = 0;
|
||||||
let calculatedVersion = yield this.resolveInfos(new DotNetVersionInfo(this.version));
|
let calculatedVersion = yield this.resolveVersion(new DotNetVersionInfo(this.version));
|
||||||
var envVariables = {};
|
var envVariables = {};
|
||||||
for (let key in process.env) {
|
for (let key in process.env) {
|
||||||
if (process.env[key]) {
|
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
|
// versionInfo - versionInfo of the SDK/Runtime
|
||||||
resolveInfos(versionInfo) {
|
resolveVersion(versionInfo) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
if (versionInfo.isExactVersion()) {
|
||||||
|
return versionInfo.version();
|
||||||
|
}
|
||||||
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
||||||
allowRetries: true,
|
allowRetries: true,
|
||||||
maxRetries: 3
|
maxRetries: 3
|
||||||
@ -16810,14 +16811,15 @@ class DotnetCoreInstaller {
|
|||||||
semver.satisfies(releaseInfo['sdk']['version-display'], versionInfo.version()));
|
semver.satisfies(releaseInfo['sdk']['version-display'], versionInfo.version()));
|
||||||
});
|
});
|
||||||
// Exclude versions that are newer than the latest if using not exact
|
// Exclude versions that are newer than the latest if using not exact
|
||||||
if (!versionInfo.isExactVersion()) {
|
|
||||||
let latestSdk = releasesResult['latest-sdk'];
|
let latestSdk = releasesResult['latest-sdk'];
|
||||||
releasesInfo = releasesInfo.filter((releaseInfo) => semver.lte(releaseInfo['sdk']['version'], latestSdk));
|
releasesInfo = releasesInfo.filter((releaseInfo) => semver.lte(releaseInfo['sdk']['version'], latestSdk));
|
||||||
}
|
|
||||||
// Sort for latest version
|
// Sort for latest version
|
||||||
releasesInfo = releasesInfo.sort((a, b) => semver.rcompare(a['sdk']['version'], b['sdk']['version']));
|
releasesInfo = releasesInfo.sort((a, b) => semver.rcompare(a['sdk']['version'], b['sdk']['version']));
|
||||||
let selectedVersion = releasesInfo[0]['sdk']['version'];
|
if (releasesInfo.length == 0) {
|
||||||
return selectedVersion;
|
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) {
|
getReleasesJsonUrl(httpClient, versionParts) {
|
||||||
|
@ -96,7 +96,7 @@ export class DotnetCoreInstaller {
|
|||||||
let output = '';
|
let output = '';
|
||||||
let resultCode = 0;
|
let resultCode = 0;
|
||||||
|
|
||||||
let calculatedVersion = await this.resolveInfos(
|
let calculatedVersion = await this.resolveVersion(
|
||||||
new DotNetVersionInfo(this.version)
|
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
|
// 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', [], {
|
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
||||||
allowRetries: true,
|
allowRetries: true,
|
||||||
maxRetries: 3
|
maxRetries: 3
|
||||||
@ -209,22 +211,23 @@ export class DotnetCoreInstaller {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Exclude versions that are newer than the latest if using not exact
|
// 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) =>
|
releasesInfo = releasesInfo.filter((releaseInfo: any) =>
|
||||||
semver.lte(releaseInfo['sdk']['version'], latestSdk)
|
semver.lte(releaseInfo['sdk']['version'], latestSdk)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
// Sort for latest version
|
// Sort for latest version
|
||||||
releasesInfo = releasesInfo.sort((a, b) =>
|
releasesInfo = releasesInfo.sort((a, b) =>
|
||||||
semver.rcompare(a['sdk']['version'], b['sdk']['version'])
|
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(
|
private async getReleasesJsonUrl(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user