@@ -26,6 +26,7 @@ type ReleaseGoplsTasks struct {
26
26
CloudBuild CloudBuildClient
27
27
SendMail func (MailHeader , MailContent ) error
28
28
AnnounceMailHeader MailHeader
29
+ ApproveAction func (* wf.TaskContext ) error
29
30
}
30
31
31
32
// NewPrereleaseDefinition create a new workflow definition for gopls pre-release.
@@ -39,8 +40,9 @@ func (r *ReleaseGoplsTasks) NewPrereleaseDefinition() *wf.Definition {
39
40
40
41
semv := wf .Task1 (wd , "validating input version" , r .isValidReleaseVersion , version )
41
42
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 )
42
44
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 ) )
44
46
branchCreated := wf .Action1 (wd , "creating new branch if minor release" , r .createBranchIfMinor , semv , wf .After (issue ))
45
47
46
48
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 {
59
61
return wd
60
62
}
61
63
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
+
62
69
// createReleaseIssue attempts to locate the release issue associated with the
63
70
// given milestone. If no such issue exists, a new one is created.
64
71
//
0 commit comments