cmd/relui: add metadata-based security comm fetching for RC releases This has been working well for the "two minor releases" relui workflow. Continue by making it available in "next RC" relui workflow next. For golang/go#79037. Change-Id: Idad7bfc19ab7dd94610842024933d64d80de2bf1 Reviewed-on: https://go-review.googlesource.com/c/build/+/795800 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/internal/relui/workflows.go b/internal/relui/workflows.go index 761e297..64160bd 100644 --- a/internal/relui/workflows.go +++ b/internal/relui/workflows.go
@@ -406,19 +406,21 @@ return err } type release struct { - major int - kind task.ReleaseKind - suffix string + major int + kind task.ReleaseKind + suffix string + useMetadata bool } releases := []release{ - {currentMajor + 1, task.KindMajor, "final"}, - {currentMajor + 1, task.KindRC, "next RC"}, - {currentMajor + 1, task.KindBeta, "next beta"}, - {currentMajor, task.KindMinor, "next minor"}, // Current minor only. - {currentMajor - 1, task.KindMinor, "next minor"}, // Previous minor only. + {currentMajor + 1, task.KindMajor, "final", false}, + {currentMajor + 1, task.KindRC, "next RC (manually input security comms)", false}, + {currentMajor + 1, task.KindRC, "next RC (metadata-based security comms)", true}, + {currentMajor + 1, task.KindBeta, "next beta", false}, + {currentMajor, task.KindMinor, "next minor", false}, // Current minor only. + {currentMajor - 1, task.KindMinor, "next minor", false}, // Previous minor only. } if time.Since(majorReleaseTime) < 7*24*time.Hour { - releases = append(releases, release{currentMajor, task.KindMajor, "final"}) + releases = append(releases, release{currentMajor, task.KindMajor, "final", false}) } for _, r := range releases { wd := wf.New(wf.ACL{Groups: []string{groups.ReleaseTeam}}) @@ -430,8 +432,14 @@ securitySummary := wf.Const("") securityFixes := wf.Slice[string]() if r.kind == task.KindMinor || r.kind == task.KindRC { - securitySummary = wf.Param(wd, securitySummaryParameter) - securityFixes = wf.Param(wd, securityFixesParameter) + if r.useMetadata { + milestoneNum := wf.Param(wd, task.SecurityMilestoneParameter) + securitySummary = wf.Task1(wd, "Get short security content summary from metadata", comm.GetSecuritySummary, milestoneNum) + securityFixes = wf.Task1(wd, "Get security release notes from metadata", comm.GetSecurityReleaseNotes, milestoneNum) + } else { + securitySummary = wf.Param(wd, securitySummaryParameter) + securityFixes = wf.Param(wd, securityFixesParameter) + } } addCommTasks(wd, build, comm, r.kind, wf.Slice(published), securitySummary, securityFixes, coordinators) if r.major >= currentMajor {