Skip to content

Commit cc9395c

Browse files
h9jianggopherbot
authored andcommitted
internal/task: add a step in pre-release to ask for user approval
A local relui screenshot is at https://go.dev/issue/57643#issuecomment-2305572494 For golang/go#57643 Change-Id: Iab10d6b4adbb04cfa8381d4e4776c3166ae40f41 Reviewed-on: https://go-review.googlesource.com/c/build/+/607896 LUCI-TryBot-Result: Go LUCI <[email protected]> Auto-Submit: Hongxiang Jiang <[email protected]> Reviewed-by: Robert Findley <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Commit-Queue: Hongxiang Jiang <[email protected]>
1 parent 29ddaf7 commit cc9395c

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

cmd/relui/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ func main() {
322322
CloudBuild: cloudBuildClient,
323323
SendMail: mailFunc,
324324
AnnounceMailHeader: goplsAnnMail,
325+
ApproveAction: relui.ApproveActionDep(dbPool),
325326
}
326327
dh.RegisterDefinition("Prepare a pre-release gopls candidate", goplsTasks.NewPrereleaseDefinition())
327328
dh.RegisterDefinition("Release gopls", goplsTasks.NewReleaseDefinition())

internal/task/releasegopls.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type ReleaseGoplsTasks struct {
2626
CloudBuild CloudBuildClient
2727
SendMail func(MailHeader, MailContent) error
2828
AnnounceMailHeader MailHeader
29+
ApproveAction func(*wf.TaskContext) error
2930
}
3031

3132
// NewPrereleaseDefinition create a new workflow definition for gopls pre-release.
@@ -39,8 +40,9 @@ func (r *ReleaseGoplsTasks) NewPrereleaseDefinition() *wf.Definition {
3940

4041
semv := wf.Task1(wd, "validating input version", r.isValidReleaseVersion, version)
4142
prerelease := wf.Task1(wd, "find the pre-release version", r.nextPrerelease, semv)
43+
approved := wf.Action2(wd, "wait for release coordinator approval", r.approveVersion, semv, prerelease)
4244

43-
issue := wf.Task1(wd, "create release git issue", r.createReleaseIssue, semv)
45+
issue := wf.Task1(wd, "create release git issue", r.createReleaseIssue, semv, wf.After(approved))
4446
branchCreated := wf.Action1(wd, "creating new branch if minor release", r.createBranchIfMinor, semv, wf.After(issue))
4547

4648
configChangeID := wf.Task3(wd, "updating branch's codereview.cfg", r.updateCodeReviewConfig, semv, reviewers, issue, wf.After(branchCreated))
@@ -59,6 +61,11 @@ func (r *ReleaseGoplsTasks) NewPrereleaseDefinition() *wf.Definition {
5961
return wd
6062
}
6163

64+
func (r *ReleaseGoplsTasks) approveVersion(ctx *wf.TaskContext, semv semversion, pre string) error {
65+
ctx.Printf("The next release candidate will be v%v.%v.%v-%s", semv.Major, semv.Minor, semv.Patch, pre)
66+
return r.ApproveAction(ctx)
67+
}
68+
6269
// createReleaseIssue attempts to locate the release issue associated with the
6370
// given milestone. If no such issue exists, a new one is created.
6471
//

internal/task/releasegopls_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,8 @@ esac`, tc.wantVersion)
659659
1: fmt.Sprintf("gopls/v%v.%v.%v", tc.semv.Major, tc.semv.Minor, tc.semv.Patch),
660660
},
661661
},
662-
SendMail: func(h MailHeader, c MailContent) error { return nil },
662+
SendMail: func(h MailHeader, c MailContent) error { return nil },
663+
ApproveAction: func(tc *workflow.TaskContext) error { return nil },
663664
}
664665

665666
wd := tasks.NewPrereleaseDefinition()

0 commit comments

Comments
 (0)