[skcq] Use skia-internal bucket for internal repos
Bug: skia:12053
Change-Id: I74fdc7b1b62eccb0b8f3181d34fdc00e9fd8d75f
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/430876
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
diff --git a/skcq/go/verifiers/tryjobs_verifier.go b/skcq/go/verifiers/tryjobs_verifier.go
index 6fffd93..2990965 100644
--- a/skcq/go/verifiers/tryjobs_verifier.go
+++ b/skcq/go/verifiers/tryjobs_verifier.go
@@ -28,7 +28,8 @@
// Time to wait before re-running old jobs for fresh results.
TryJobStaleTimeoutSecs = 24 * 60 * 60
- BuildBucketDefaultSkiaProject = "skia"
+ BuildBucketDefaultSkiaProject = "skia"
+ BuildBucketInternalSkiaProject = "skia-internal"
BuildBucketDefaultSkiaBucket = "skia.primary"
BuildBucketInternalSkiaBucket = "skia.internal"
@@ -95,13 +96,17 @@
}
// Figure out which BB bucket should be used for this change.
+ var bbProject string
var bbBucket string
switch tv.visibilityType {
case config.InternalVisibility:
+ bbProject = BuildBucketInternalSkiaProject
bbBucket = BuildBucketInternalSkiaBucket
case config.StagingVisibility:
+ bbProject = BuildBucketDefaultSkiaProject
bbBucket = BuildBucketStagingSkiaBucket
default:
+ bbProject = BuildBucketDefaultSkiaProject
bbBucket = BuildBucketDefaultSkiaBucket
}
@@ -150,7 +155,7 @@
cqTryjobsToConfigs := tv.tasksCfg.CommitQueue
// Check, parse, and add the try jobs in IncludeTryjobsFooter if specified.
- includeTryJobs, err := tv.getIncludeFooterTryJobs(ci.Issue, bbBucket)
+ includeTryJobs, err := tv.getIncludeFooterTryJobs(ci.Issue, bbProject, bbBucket)
if err != nil {
return types.VerifierFailureState, err.Error(), nil
}
@@ -293,7 +298,7 @@
}
botsToTags[t] = tags
}
- respBuilds, err := tv.bb2.ScheduleBuilds(ctx, triggerTryJobs, botsToTags, ci.Issue, latestPatchSetID, tv.gerritURL, ci.Project, BuildBucketDefaultSkiaProject, bbBucket)
+ respBuilds, err := tv.bb2.ScheduleBuilds(ctx, triggerTryJobs, botsToTags, ci.Issue, latestPatchSetID, tv.gerritURL, ci.Project, bbProject, bbBucket)
if err != nil {
return "", "", skerr.Wrapf(err, "[%d] Could not trigger %+v tryjobs", ci.Issue, triggerTryJobs)
}
@@ -380,7 +385,7 @@
// getIncludeFooterTryJobs parses footers for the footers.IncludeTryjobsFooter
// and returns try jobs from it. If the specified project or bucket does not
// match it is expected, then an error is returned.
-func (tv *TryJobsVerifier) getIncludeFooterTryJobs(issue int64, bbBucket string) ([]string, error) {
+func (tv *TryJobsVerifier) getIncludeFooterTryJobs(issue int64, bbProject, bbBucket string) ([]string, error) {
// Check, parse, and get the try jobs in IncludeTryjobsFooter if specified.
includeTryjobsFooter := git.GetStringFooterVal(tv.footersMap, footers.IncludeTryjobsFooter)
if includeTryjobsFooter == "" {
@@ -408,7 +413,7 @@
p = projectAndBucket[1]
b = fmt.Sprintf("%s.%s", projectAndBucket[2], projectAndBucket[3])
}
- if p != BuildBucketDefaultSkiaProject {
+ if p != bbProject {
return nil, skerr.Fmt("Could not recognize bb project \"%s\" in %+v", p, includeTryJobsMap)
}
if b != bbBucket {
diff --git a/skcq/go/verifiers/tryjobs_verifier_test.go b/skcq/go/verifiers/tryjobs_verifier_test.go
index a62513f..735d9d4 100644
--- a/skcq/go/verifiers/tryjobs_verifier_test.go
+++ b/skcq/go/verifiers/tryjobs_verifier_test.go
@@ -17,6 +17,7 @@
"go.skia.org/infra/go/testutils"
"go.skia.org/infra/go/testutils/unittest"
cr_mocks "go.skia.org/infra/skcq/go/codereview/mocks"
+ "go.skia.org/infra/skcq/go/config"
"go.skia.org/infra/skcq/go/footers"
"go.skia.org/infra/skcq/go/types"
"go.skia.org/infra/task_scheduler/go/specs"
@@ -229,6 +230,60 @@
require.Equal(t, types.VerifierWaitingState, vs)
}
+func TestVerify_AllSuccessfulTryJobs_RetriggerFooter_Internal(t *testing.T) {
+ unittest.SmallTest(t)
+
+ ci, gerritURL, tasksCfg := setupTest()
+ latestPatchsetID := int64(5)
+ tryJobName1 := "try_job1"
+ tryJobName2 := "try_job2"
+
+ // Setup codereview mock.
+ cr := &cr_mocks.CodeReview{}
+ cr.On("GetLatestPatchSetID", ci).Return(latestPatchsetID).Once()
+ cr.On("GetEquivalentPatchSetIDs", ci, latestPatchsetID).Return([]int64{latestPatchsetID}).Once()
+
+ // Setup buildbucket mock.
+ bb := &bb_mocks.BuildBucketInterface{}
+ bbBuilds := []*buildbucketpb.Build{
+ {
+ Builder: &buildbucketpb.BuilderID{Builder: tryJobName1},
+ CreateTime: ×tamppb.Timestamp{Seconds: currentTime.Unix()},
+ Status: buildbucketpb.Status_SUCCESS,
+ },
+ {
+ Builder: &buildbucketpb.BuilderID{Builder: tryJobName2},
+ CreateTime: ×tamppb.Timestamp{Seconds: currentTime.Unix()},
+ Status: buildbucketpb.Status_SUCCESS,
+ },
+ }
+ bb.On("GetTrybotsForCL", testutils.AnyContext, ci.Issue, latestPatchsetID, "https://"+gerritURL, map[string]string(nil)).Return(bbBuilds, nil).Twice()
+ defaultTags := map[string]string{
+ "triggered_by": "skcq",
+ "cq_experimental": "false",
+ }
+ botsToTags := map[string]map[string]string{
+ tryJobName2: defaultTags,
+ tryJobName1: defaultTags,
+ }
+ bb.On("ScheduleBuilds", testutils.AnyContext, mock.Anything, botsToTags, ci.Issue, latestPatchsetID, gerritURL, ci.Project, BuildBucketInternalSkiaProject, BuildBucketInternalSkiaBucket).Return(bbBuilds, nil).Once()
+
+ // Test verify.
+ tv := &TryJobsVerifier{
+ bb2: bb,
+ cr: cr,
+ tasksCfg: tasksCfg,
+ gerritURL: gerritURL,
+ footersMap: map[string]string{
+ string(footers.RerunTryjobsFooter): "true",
+ },
+ visibilityType: config.InternalVisibility,
+ }
+ vs, _, err := tv.Verify(context.Background(), ci, timeNowFunc().Unix())
+ require.NoError(t, err)
+ require.Equal(t, types.VerifierWaitingState, vs)
+}
+
func TestVerify_IncludeTryjobsFooter(t *testing.T) {
unittest.SmallTest(t)