blob: 520113869f23e063af08921938e75dfbff3ea938 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package main
import (
"context"
_ "embed"
"time"
"cloud.google.com/go/bigquery"
buildbucketpb "go.chromium.org/luci/buildbucket/proto"
)
//go:embed queries/affected_test_results.sql
var affectedTestResultsQuery string
type changeAffectingTest struct {
Change *buildbucketpb.GerritChange
TestStatus string
}
func getChangesAffectingTest(
ctx context.Context,
bqClient *bigquery.Client,
sig failureSignature,
windowEnd time.Time,
) ([]changeAffectingTest, error) {
return runQuery[changeAffectingTest](ctx, bqClient, affectedTestResultsQuery,
map[string]any{
"test_id": sig.FailedTest,
// Use a pretty large time window because tryjobs may have run up to
// 24 hours before the change landed.
"earliest_time": windowEnd.Add(-48 * time.Hour),
"latest_time": windowEnd,
},
)
}