Skip to content

Commit adda295

Browse files
dmitshurgopherbot
authored andcommitted
cmd/relui: add mail-dl-cl workflow
Previously, this task was exposed only via the cmd/releasebot CLI. Now that relui workflows support slice of string parameters, it's easy to expose this task via a relui workflow too. This is another step in having relui do more release work. For golang/go#40279. Change-Id: Icf94e49ac8124ffb77a78b80c65c477d6b43bf05 Reviewed-on: https://go-review.googlesource.com/c/build/+/404535 Reviewed-by: Dmitri Shuralyov <[email protected]> Auto-Submit: Dmitri Shuralyov <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Dmitri Shuralyov <[email protected]> Reviewed-by: Heschi Kreinick <[email protected]>
1 parent fb638e1 commit adda295

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

cmd/relui/deployment-prod.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ spec:
2828
# Define the site header and external service configuration.
2929
- "--site-title=Go Releases"
3030
- "--site-header-css=Site-header--production"
31+
- "--gerrit-api-secret=secret:symbolic-datum-552/gobot-password"
3132
- "--twitter-api-secret=secret:symbolic-datum-552/twitter-api-secret"
3233
ports:
3334
- containerPort: 444

cmd/relui/main.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"net/url"
1313

1414
"github.com/jackc/pgx/v4/pgxpool"
15+
"golang.org/x/build/gerrit"
1516
"golang.org/x/build/internal/https"
1617
"golang.org/x/build/internal/relui"
1718
"golang.org/x/build/internal/secret"
@@ -32,6 +33,7 @@ func main() {
3233
if err := secret.InitFlagSupport(context.Background()); err != nil {
3334
log.Fatalln(err)
3435
}
36+
gerritAPIFlag := secret.Flag("gerrit-api-secret", "Gerrit API secret to use for workflows that interact with Gerrit.")
3537
var twitterAPI secret.TwitterCredentials
3638
secret.JSONVarFlag(&twitterAPI, "twitter-api-secret", "Twitter API secret to use for workflows involving tweeting.")
3739
https.RegisterFlags(flag.CommandLine)
@@ -61,12 +63,17 @@ func main() {
6163
CSSClass: *siteHeaderCSS,
6264
}
6365
extCfg = task.ExternalConfig{
66+
GerritAPI: struct {
67+
URL string
68+
Auth gerrit.Auth
69+
}{"https://go-review.googlesource.com", gerrit.BasicAuth("git-gobot.golang.org", *gerritAPIFlag)},
6470
// TODO(go.dev/issue/51150): When twitter client creation is factored out from task package, update code here.
6571
TwitterAPI: twitterAPI,
6672
}
6773
)
6874

6975
dh := relui.NewDefinitionHolder()
76+
relui.RegisterMailDLCLDefinition(dh, extCfg)
7077
relui.RegisterTweetDefinitions(dh, extCfg)
7178
db, err := pgxpool.Connect(ctx, *pgConnect)
7279
if err != nil {

internal/relui/workflows.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,30 @@ func (h *DefinitionHolder) Definitions() map[string]*workflow.Definition {
5555
return defs
5656
}
5757

58+
// RegisterMailDLCLDefinition registers a workflow definition for mailing a golang.org/dl CL
59+
// onto h, using e for the external service configuration.
60+
func RegisterMailDLCLDefinition(h *DefinitionHolder, e task.ExternalConfig) {
61+
versions := workflow.Parameter{
62+
Name: "Versions",
63+
ParameterType: workflow.SliceShort,
64+
Doc: `Versions are the Go versions that have been released.
65+
66+
The versions must use the same format as Go tags,
67+
and the list must contain one or two versions.
68+
69+
For example:
70+
• "go1.18.2" and "go1.17.10" for a minor Go release
71+
• "go1.19" for a major Go release
72+
• "go1.19beta1" or "go1.19rc1" for a pre-release`,
73+
}
74+
75+
wd := workflow.New()
76+
wd.Output("ChangeURL", wd.Task("mail-dl-cl", func(ctx *workflow.TaskContext, versions []string) (string, error) {
77+
return task.MailDLCL(ctx, versions, e)
78+
}, wd.Parameter(versions)))
79+
h.RegisterDefinition("mail-dl-cl", wd)
80+
}
81+
5882
// RegisterTweetDefinitions registers workflow definitions involving tweeting
5983
// onto h, using e for the external service configuration.
6084
func RegisterTweetDefinitions(h *DefinitionHolder, e task.ExternalConfig) {

0 commit comments

Comments
 (0)