Skip to content

release_create: keepPreReleaseCount is offset by a value of 1 #69

@ReenigneArcher

Description

@ReenigneArcher

Describe the Bug

function filterReleasesToDelete(allReleases, isDraft, currentTag, keepLatest) {
let releasesToDelete = [];
if (isDraft) {
// When creating a draft, delete all other draft releases
releasesToDelete = allReleases.filter(release =>
release.draft &&
matchesVersionPattern(release.tag_name) &&
release.tag_name !== currentTag
);
console.log('Matched Draft releases:', releasesToDelete.map(release => release.tag_name));
} else {
// When creating a non-draft pre-release, delete all except the latest N pre-releases
releasesToDelete = allReleases.filter(release =>
release.prerelease &&
matchesVersionPattern(release.tag_name) &&
release.tag_name !== currentTag
);
console.log('Matched Pre-release tags:', releasesToDelete.map(release => release.tag_name));
// Sort by tag/version number (e.g. v1.2.3 or v1.2.3.4)
releasesToDelete.sort((a, b) => compareVersionTags(a.tag_name, b.tag_name));
// Output sorted pre-releases
console.log('Sorted Pre-release tags:', releasesToDelete.map(release => release.tag_name));
// Keep only the releases to delete (remove the latest N from the list)
if (keepLatest > 0) {
releasesToDelete = releasesToDelete.slice(0, -keepLatest);
}
// If keepLatest is 0, delete all
}

After ensuring the current release does not get deleted, it now increases the pre-release to keep count by 1.

Expected Behavior

Keep only the keepPreReleaseCount number of pre-releases instead of keepPreReleaseCount + 1

Additional Context

Bug was introduced in #41

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions