diff --git a/dist/index.js b/dist/index.js index ea151c67..ff6bad6f 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map index f243b1f6..987ce0d1 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ diff --git a/src/model/versioning.ts b/src/model/versioning.ts index 38176907..a0ac3675 100644 --- a/src/model/versioning.ts +++ b/src/model/versioning.ts @@ -207,7 +207,21 @@ 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', '--tags', '--always', 'HEAD']); + } + + const latestVersionTag = versionTags[0]; + const commitsCount = (await this.git(['rev-list', `${latestVersionTag}..HEAD`, '--count'])).trim(); + const commitHash = (await this.git(['rev-parse', '--short', 'HEAD'])).trim(); + + return `${latestVersionTag}-${commitsCount}-g${commitHash}`; } /**