cmd/releasebot: remove support for parallel releases
The output would end up mixed to the point of being useless. releasebot
now supports parallelism at the terminal tab level.
Change-Id: I291954a88884452e71d3e3d0416301453aec8374
Reviewed-on: https://go-review.googlesource.com/c/154340
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/cmd/releasebot/main.go b/cmd/releasebot/main.go
index 6825422..69f0e16 100644
--- a/cmd/releasebot/main.go
+++ b/cmd/releasebot/main.go
@@ -64,7 +64,7 @@
security := flag.Bool("security", false, "cut a security release from the internal Gerrit")
flag.Usage = usage
flag.Parse()
- if *modeFlag == "" || !releaseModes[*modeFlag] || flag.NArg() == 0 {
+ if *modeFlag == "" || !releaseModes[*modeFlag] || flag.NArg() != 1 {
usage()
}
@@ -77,58 +77,48 @@
loadGithubAuth()
loadGCSAuth()
- var wg sync.WaitGroup
- for _, release := range flag.Args() {
- if strings.Contains(release, "beta") || strings.Contains(release, "rc") {
- if *security {
- log.Printf("error: only minor releases are supported in security mode")
- usage()
+ release := flag.Arg(0)
+
+ if strings.Contains(release, "beta") || strings.Contains(release, "rc") {
+ if *security {
+ log.Printf("error: only minor releases are supported in security mode")
+ usage()
+ }
+ w := &Work{
+ Prepare: *modeFlag == "prepare",
+ Version: release,
+ BetaRelease: strings.Contains(release, "beta"),
+ RCRelease: strings.Contains(release, "rc"),
+ }
+ w.doRelease()
+ return
+ }
+
+ errFoundMilestone := errors.New("found milestone")
+ err := goRepo.ForeachMilestone(func(m *maintner.GitHubMilestone) error {
+ if strings.ToLower(m.Title) == release {
+ nextM, err := nextMilestone(m)
+ if err != nil {
+ return err
}
w := &Work{
- Prepare: *modeFlag == "prepare",
- Version: release,
- BetaRelease: strings.Contains(release, "beta"),
- RCRelease: strings.Contains(release, "rc"),
+ Milestone: m,
+ NextMilestone: nextM,
+ Prepare: *modeFlag == "prepare",
+ Version: release,
+ Security: *security,
}
- wg.Add(1)
- go func() {
- defer wg.Done()
- w.doRelease()
- }()
- continue
+ w.doRelease()
+ return errFoundMilestone
}
-
- errFoundMilestone := errors.New("found milestone")
- err := goRepo.ForeachMilestone(func(m *maintner.GitHubMilestone) error {
- if strings.ToLower(m.Title) == release {
- nextM, err := nextMilestone(m)
- if err != nil {
- return err
- }
- w := &Work{
- Milestone: m,
- NextMilestone: nextM,
- Prepare: *modeFlag == "prepare",
- Version: release,
- Security: *security,
- }
- wg.Add(1)
- go func() {
- defer wg.Done()
- w.doRelease()
- }()
- return errFoundMilestone
- }
- return nil
- })
- if err != nil && err != errFoundMilestone {
- log.Printf("error looking for release %s: %v", release, err)
- }
- if err == nil {
- log.Printf("cannot find release %s", release)
- }
+ return nil
+ })
+ if err != nil && err != errFoundMilestone {
+ log.Fatalf("error looking for release %s: %v", release, err)
}
- wg.Wait()
+ if err == nil {
+ log.Fatalf("cannot find release %s", release)
+ }
}
func nextMilestone(m *maintner.GitHubMilestone) (*maintner.GitHubMilestone, error) {