@@ -27,6 +27,7 @@ func GetGitTags() []*semver.Version {
2727 tag = strings .TrimSpace (tag )
2828 vv , err := semver .NewSemver (tag )
2929 if err != nil {
30+ slog .Error ("failed to parse git tag" , "tag" , tag , "err" , err )
3031 continue
3132 }
3233 versions = append (versions , vv )
@@ -43,19 +44,23 @@ func GetNextReleaseTag(tags []*semver.Version) *semver.Version {
4344}
4445
4546func GetNextTag (pre string , tags []* semver.Version ) * semver.Version {
46- var preData = fmt . Sprintf ( "-%s." , pre )
47+ var maxVer = GetGitMaxTag ( tags )
4748 var curMaxVer = typex .DoBlock1 (func () * semver.Version {
48- preTags := lo .Filter (tags , func (item * semver.Version , index int ) bool { return strings .Contains (item .String (), preData ) })
49- var curMaxVer = lo .MaxBy (preTags , func (a * semver.Version , b * semver.Version ) bool { return a .Compare (b ) > 0 })
49+ var curMaxVer = lo .MaxBy (tags , func (a * semver.Version , b * semver.Version ) bool { return a .Compare (b ) > 0 })
5050 return curMaxVer
5151 })
5252
53+ fmt .Println (curMaxVer .String (), maxVer .String ())
5354 var ver string
54- if curMaxVer != nil {
55+ if curMaxVer != nil && curMaxVer . Core (). GreaterThan ( maxVer ) {
5556 ver = strings .ReplaceAll (curMaxVer .Prerelease (), fmt .Sprintf ("%s." , pre ), "" )
57+ if ver == "" {
58+ ver = "1"
59+ }
60+
5661 ver = fmt .Sprintf ("v%s-%s.%d" , curMaxVer .Core ().String (), pre , assert .Must1 (strconv .Atoi (ver ))+ 1 )
5762 } else {
58- ver = fmt .Sprintf ("v%s-%s.1" , GetNextReleaseTag ( tags ) .String (), pre )
63+ ver = fmt .Sprintf ("v%s-%s.1" , maxVer .String (), pre )
5964 }
6065 return assert .Exit1 (semver .NewSemver (ver ))
6166}
0 commit comments