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

View File

@@ -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]);
}
/**