Skip to content

Commit e77082a

Browse files
committed
fix get latest tag
1 parent e76e0e3 commit e77082a

File tree

3 files changed

+17
-26
lines changed

3 files changed

+17
-26
lines changed

cmd/gorepomod/internal/git/runner.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -366,21 +366,22 @@ func (gr *Runner) DeleteTagFromRemote(
366366
return gr.runNoOut(undoPainful, "push", string(remote), ":"+refsTags+tag)
367367
}
368368

369-
func (gr *Runner) GetLatestTag(releaseBranch string) (string, error) {
369+
func (gr *Runner) GetLatestTag(releaseTag string) (string, error) {
370370
var latestTag string
371-
// Assuming release branch has this format: release-path/to/module-vX.Y.Z
372-
// and each release branch maintains tags, extract version from latest `releaseBranch`
373-
gr.comment("extract version from latest release branch")
374-
filteredBranchList, err := gr.run(noHarmDone, "branch", "-a", "--list", "*"+releaseBranch+"*", "--sort=-committerdate")
375-
if len(filteredBranchList) < 1 {
376-
_ = fmt.Errorf("latest tag not found for %s", releaseBranch)
371+
// Assuming release branch has this format: module/vX.Y.Z
372+
gr.comment("extract version from latest release tag")
373+
374+
// Using `creatordate` sort key as it is more accurate
375+
filteredTagList, err := gr.run(noHarmDone, "tag", "-l", "--sort=-creatordate", releaseTag+"*")
376+
if len(filteredTagList) < 1 {
377+
_ = fmt.Errorf("latest tag not found for %s", releaseTag)
377378
return "", err
378379
}
379-
newestBranch := strings.Split(strings.ReplaceAll(filteredBranchList, "\r\n", "\n"), "\n")
380-
split := strings.Split(newestBranch[0], "-")
380+
newestTag := strings.Split(strings.ReplaceAll(filteredTagList, "\r\n", "\n"), "\n")
381+
split := strings.Split(newestTag[0], "/")
381382
latestTag = split[len(split)-1]
382383
if err != nil {
383-
_ = fmt.Errorf("error getting latest tag for %s", releaseBranch)
384+
_ = fmt.Errorf("error getting latest tag for %s", releaseTag)
384385
}
385386

386387
return latestTag, nil

cmd/gorepomod/internal/repo/manager.go

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ func (mgr *Manager) List() error {
8484
// Auto-update local tags
8585
gr := git.NewQuiet(mgr.AbsPath(), false, false)
8686
for _, module := range mgr.modules {
87-
releaseBranch := fmt.Sprintf("release-%s", module.ShortName())
88-
_, err := gr.GetLatestTag(releaseBranch)
87+
releaseTag := string(module.ShortName())
88+
_, err := gr.GetLatestTag(releaseTag)
8989
if err != nil {
9090
return fmt.Errorf("failed getting latest tags for %s", module)
9191
}
@@ -204,17 +204,6 @@ func (mgr *Manager) Release(
204204
if err := gr.AssureCleanWorkspace(); err != nil {
205205
return err
206206
}
207-
// Deprecated: no need to create new release branch,
208-
// gorepomod will determine new version to publish based on release branch
209-
// if err := gr.CheckoutReleaseBranch(mgr.remoteName, relBranch); err != nil {
210-
// return err
211-
// }
212-
// if err := gr.MergeFromRemoteMain(mgr.remoteName); err != nil {
213-
// return err
214-
// }
215-
// if err := gr.PushBranchToRemote(mgr.remoteName, relBranch); err != nil {
216-
// return err
217-
// }
218207
if err := gr.CreateLocalReleaseTag(relTag, relBranch); err != nil {
219208
return err
220209
}

cmd/gorepomod/main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ func actualMain() error {
8383

8484
if v.IsZero() {
8585
// Always use latest tag while does not removing manual usage capability
86-
releaseBranch := fmt.Sprintf("release-%s", targetModule.ShortName())
87-
fmt.Printf("new version not specified, fall back to latest version according to release branch: %s-*\n", releaseBranch)
88-
latest, err := gr.GetLatestTag(releaseBranch)
86+
releaseTag := string(targetModule.ShortName())
87+
fmt.Printf("new version not specified, fall back to latest version according to release tag: %s/*\n", releaseTag)
88+
latest, err := gr.GetLatestTag(releaseTag)
8989
if err != nil {
9090
v = targetModule.VersionLocal()
9191
err = mgr.Pin(args.DoIt(), targetModule, v)
@@ -94,6 +94,7 @@ func actualMain() error {
9494
}
9595
return nil
9696
}
97+
fmt.Printf("setting release tag to %s ...\n", latest)
9798
v, err = semver.Parse(latest)
9899
if err != nil {
99100
v = targetModule.VersionLocal()

0 commit comments

Comments
 (0)