Skip to content

Commit 2615a24

Browse files
tarunramsinghaniazure-pipelines-botCopilot
authored
Fix release script crash when no releases exist for new major version (#5487)
When creating a release for a new major version (e.g., v5), the script crashes with TypeError because no previous releases with that prefix exist. This adds fallback logic to use the previous major version (e.g., v4) for comparison instead. Co-authored-by: azure-pipelines-bot <azure-pipelines-bot@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 80c647a commit 2615a24

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

release/createReleaseBranch.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,24 @@ async function fetchPRsSincePreviousReleaseAndEditReleaseNotes(newRelease, callb
139139

140140
var filteredReleases = latestReleases.data.filter(release => !release.draft); // consider only pre-releases and published releases
141141

142-
var releaseTagPrefix = 'v' + newRelease.split('.')[0];
142+
var majorVersion = parseInt(newRelease.split('.')[0]);
143+
var releaseTagPrefix = 'v' + majorVersion;
143144
console.log(`Getting latest release starting with ${releaseTagPrefix}`);
144145

145146
var latestReleaseInfo = filteredReleases.find(release => release.tag_name.toLowerCase().startsWith(releaseTagPrefix.toLowerCase()));
147+
148+
// Fall back to previous major version if no releases found for current major version
149+
if (!latestReleaseInfo && majorVersion > 0) {
150+
var fallbackPrefix = 'v' + (majorVersion - 1);
151+
console.log(`No releases found with prefix ${releaseTagPrefix}, falling back to ${fallbackPrefix}`);
152+
latestReleaseInfo = filteredReleases.find(release => release.tag_name.toLowerCase().startsWith(fallbackPrefix.toLowerCase()));
153+
}
154+
155+
if (!latestReleaseInfo) {
156+
console.log(`Error: No releases found with prefix ${releaseTagPrefix} or fallback. Aborting.`);
157+
process.exit(-1);
158+
}
159+
146160
console.log(`Previous release tag with ${latestReleaseInfo.tag_name} and published date is: ${latestReleaseInfo.published_at}`)
147161

148162
try {

0 commit comments

Comments
 (0)