load("//bazel/go:go_test.bzl", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_library")

go_library(
    name = "ingestion_processors",
    srcs = [
        "buildbucketlookup.go",
        "common.go",
        "primarysql.go",
        "tracestore_impl.go",
        "tryjob_ingestion.go",
    ],
    importpath = "go.skia.org/infra/golden/go/ingestion_processors",
    visibility = ["//visibility:public"],
    deps = [
        "//go/buildbucket",
        "//go/gerrit",
        "//go/httputils",
        "//go/metrics2",
        "//go/now",
        "//go/paramtools",
        "//go/skerr",
        "//go/sklog",
        "//go/util",
        "//go/vcsinfo",
        "//golden/go/clstore",
        "//golden/go/code_review",
        "//golden/go/code_review/gerrit_crs",
        "//golden/go/code_review/github_crs",
        "//golden/go/continuous_integration",
        "//golden/go/continuous_integration/buildbucket_cis",
        "//golden/go/continuous_integration/simple_cis",
        "//golden/go/ingestion",
        "//golden/go/jsonio",
        "//golden/go/sql",
        "//golden/go/sql/schema",
        "//golden/go/tracestore",
        "//golden/go/tracestore/bt_tracestore",
        "//golden/go/types",
        "@com_github_cockroachdb_cockroach_go_v2//crdb/crdbpgx",
        "@com_github_hashicorp_golang_lru//:golang-lru",
        "@com_github_jackc_pgx_v4//:pgx",
        "@com_github_jackc_pgx_v4//pgxpool",
        "@io_opencensus_go//trace",
        "@org_golang_x_oauth2//:oauth2",
        "@org_golang_x_sync//errgroup",
        "@org_golang_x_time//rate",
    ],
)

go_test(
    name = "ingestion_processors_test",
    srcs = [
        "buildbucketlookup_manual_test.go",
        "common_test.go",
        "primarysql_test.go",
        "tracestore_impl_manual_test.go",
        "tracestore_impl_test.go",
        "tryjob_ingestion_test.go",
    ],
    data = glob(["testdata/**"]),
    embed = [":ingestion_processors"],
    deps = [
        "//go/buildbucket",
        "//go/httputils",
        "//go/metrics2",
        "//go/now",
        "//go/paramtools",
        "//go/skerr",
        "//go/testutils",
        "//go/testutils/unittest",
        "//go/vcsinfo",
        "//go/vcsinfo/mocks",
        "//golden/go/clstore",
        "//golden/go/code_review",
        "//golden/go/code_review/gerrit_crs",
        "//golden/go/code_review/mocks",
        "//golden/go/continuous_integration",
        "//golden/go/continuous_integration/mocks",
        "//golden/go/continuous_integration/simple_cis",
        "//golden/go/ingestion",
        "//golden/go/ingestion_processors/mocks",
        "//golden/go/jsonio",
        "//golden/go/mocks",
        "//golden/go/sql/databuilder",
        "//golden/go/sql/datakitchensink",
        "//golden/go/sql/schema",
        "//golden/go/sql/sqltest",
        "//golden/go/tracestore",
        "//golden/go/types",
        "@com_github_hashicorp_golang_lru//:golang-lru",
        "@com_github_stretchr_testify//assert",
        "@com_github_stretchr_testify//mock",
        "@com_github_stretchr_testify//require",
        "@com_google_cloud_go_storage//:storage",
    ],
)
