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.
This commit is contained in:
Boris Proshin 2024-10-03 15:21:19 +03:00 committed by GitHub
parent 461ecf7cea
commit da6189bd7b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -207,7 +207,17 @@ export default class Versioning {
* identifies the current commit. * identifies the current commit.
*/ */
static async getVersionDescription() { 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]);
} }
/** /**