mirror of
https://github.com/actions/setup-dotnet.git
synced 2026-05-16 19:58:19 +01:00
Compare commits
1 Commits
copilot/re
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1970f5ca3 |
34
dist/setup/index.js
vendored
34
dist/setup/index.js
vendored
@@ -78768,7 +78768,22 @@ class DotnetVersionResolver {
|
|||||||
this.resolvedArgument.value = `${major}.${minor}`;
|
this.resolvedArgument.value = `${major}.${minor}`;
|
||||||
}
|
}
|
||||||
else if (this.isNumericTag(major)) {
|
else if (this.isNumericTag(major)) {
|
||||||
this.resolvedArgument.value = await this.getLatestByMajorTag(major);
|
// Starting with .NET 5, the minor version is always zero.
|
||||||
|
// Hardcode the earlier versions because they will not get new releases.
|
||||||
|
switch (major) {
|
||||||
|
case '1':
|
||||||
|
this.resolvedArgument.value = '1.1';
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
this.resolvedArgument.value = '2.2';
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
this.resolvedArgument.value = '3.1';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
this.resolvedArgument.value = `${major}.0`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// If "dotnet-version" is specified as *, x or X resolve latest version of .NET explicitly from LTS channel. The version argument will default to "latest" by install-dotnet script.
|
// If "dotnet-version" is specified as *, x or X resolve latest version of .NET explicitly from LTS channel. The version argument will default to "latest" by install-dotnet script.
|
||||||
@@ -78832,23 +78847,6 @@ class DotnetVersionResolver {
|
|||||||
}
|
}
|
||||||
return releasesInfo[0]['channel-version'];
|
return releasesInfo[0]['channel-version'];
|
||||||
}
|
}
|
||||||
async getLatestByMajorTag(majorTag) {
|
|
||||||
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
|
||||||
allowRetries: true,
|
|
||||||
maxRetries: 3
|
|
||||||
});
|
|
||||||
const response = await httpClient.getJson(DotnetVersionResolver.DotnetCoreIndexUrl);
|
|
||||||
const result = response.result || {};
|
|
||||||
const releasesInfo = result['releases-index'];
|
|
||||||
const releaseInfo = releasesInfo.find(info => {
|
|
||||||
const sdkParts = info['channel-version'].split('.');
|
|
||||||
return sdkParts[0] === majorTag;
|
|
||||||
});
|
|
||||||
if (!releaseInfo) {
|
|
||||||
throw new Error(`Could not find info for version with major tag: "${majorTag}" at ${DotnetVersionResolver.DotnetCoreIndexUrl}`);
|
|
||||||
}
|
|
||||||
return releaseInfo['channel-version'];
|
|
||||||
}
|
|
||||||
static DotnetCoreIndexUrl = 'https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json';
|
static DotnetCoreIndexUrl = 'https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json';
|
||||||
}
|
}
|
||||||
exports.DotnetVersionResolver = DotnetVersionResolver;
|
exports.DotnetVersionResolver = DotnetVersionResolver;
|
||||||
|
|||||||
@@ -125,7 +125,22 @@ export class DotnetVersionResolver {
|
|||||||
} else if (this.isNumericTag(major) && this.isNumericTag(minor)) {
|
} else if (this.isNumericTag(major) && this.isNumericTag(minor)) {
|
||||||
this.resolvedArgument.value = `${major}.${minor}`;
|
this.resolvedArgument.value = `${major}.${minor}`;
|
||||||
} else if (this.isNumericTag(major)) {
|
} else if (this.isNumericTag(major)) {
|
||||||
this.resolvedArgument.value = await this.getLatestByMajorTag(major);
|
// Starting with .NET 5, the minor version is always zero.
|
||||||
|
// Hardcode the earlier versions because they will not get new releases.
|
||||||
|
switch (major) {
|
||||||
|
case '1':
|
||||||
|
this.resolvedArgument.value = '1.1';
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
this.resolvedArgument.value = '2.2';
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
this.resolvedArgument.value = '3.1';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
this.resolvedArgument.value = `${major}.0`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// If "dotnet-version" is specified as *, x or X resolve latest version of .NET explicitly from LTS channel. The version argument will default to "latest" by install-dotnet script.
|
// If "dotnet-version" is specified as *, x or X resolve latest version of .NET explicitly from LTS channel. The version argument will default to "latest" by install-dotnet script.
|
||||||
this.resolvedArgument.value = 'LTS';
|
this.resolvedArgument.value = 'LTS';
|
||||||
@@ -207,33 +222,6 @@ export class DotnetVersionResolver {
|
|||||||
return releasesInfo[0]['channel-version'];
|
return releasesInfo[0]['channel-version'];
|
||||||
}
|
}
|
||||||
|
|
||||||
private async getLatestByMajorTag(majorTag: string): Promise<string> {
|
|
||||||
const httpClient = new hc.HttpClient('actions/setup-dotnet', [], {
|
|
||||||
allowRetries: true,
|
|
||||||
maxRetries: 3
|
|
||||||
});
|
|
||||||
|
|
||||||
const response = await httpClient.getJson<any>(
|
|
||||||
DotnetVersionResolver.DotnetCoreIndexUrl
|
|
||||||
);
|
|
||||||
|
|
||||||
const result = response.result || {};
|
|
||||||
const releasesInfo: any[] = result['releases-index'];
|
|
||||||
|
|
||||||
const releaseInfo = releasesInfo.find(info => {
|
|
||||||
const sdkParts: string[] = info['channel-version'].split('.');
|
|
||||||
return sdkParts[0] === majorTag;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!releaseInfo) {
|
|
||||||
throw new Error(
|
|
||||||
`Could not find info for version with major tag: "${majorTag}" at ${DotnetVersionResolver.DotnetCoreIndexUrl}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return releaseInfo['channel-version'];
|
|
||||||
}
|
|
||||||
|
|
||||||
static DotnetCoreIndexUrl =
|
static DotnetCoreIndexUrl =
|
||||||
'https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json';
|
'https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user