From da6189bd7bdab6284bb7087023933c3a7c876212 Mon Sep 17 00:00:00 2001 From: Boris Proshin Date: Thu, 3 Oct 2024 15:21:19 +0300 Subject: [PATCH] Fix getVersionDescription() to prioritize version tags over non-version tags This fix modifies the getVersionDescription() method to ensure it only considers valid version tags when describing the current version. It retrieves all tags merged into the current branch, filters them based on a version-compatible regex, and uses the most recent valid version tag for description. If no valid tags are found, it falls back to the default description behavior. This resolves the issue of incorrect tags being used when multiple tags are present. --- src/model/versioning.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/model/versioning.ts b/src/model/versioning.ts index 38176907..7f7b6bdf 100644 --- a/src/model/versioning.ts +++ b/src/model/versioning.ts @@ -207,7 +207,17 @@ export default class Versioning { * identifies the current commit. */ static async getVersionDescription() { - return this.git(['describe', '--long', '--tags', '--always', 'HEAD']); + const versionTags = (await this.git(['tag', '--list', '--merged', 'HEAD', '--sort=-creatordate',])) + .split('\n') + .filter(tag => new RegExp(this.grepCompatibleInputVersionRegex).test(tag)); + + if (versionTags.length === 0) { + core.warning('No valid version tags found. Using fallback description.'); + return this.git(['describe', '--long', '--always', 'HEAD']); + } + + const latestVersionTag = versionTags[0]; + return this.git(['describe', '--long', '--tags', latestVersionTag]); } /**