# gazelle:build_file_name BUILD,BUILD.bazel

# gazelle:exclude _artifacts
# gazelle:exclude _gopath
# gazelle:exclude _output
# gazelle:exclude _tmp

# gazelle:prefix k8s.io/kubernetes

# Disable proto rules, since the Go sources are currently generated by
# hack/update-generated-protobuf.sh and checked into the repo.
# gazelle:proto disable_global

package(default_visibility = ["//visibility:public"])

load("@io_kubernetes_build//defs:build.bzl", "gcs_upload")

filegroup(
    name = "_binary-artifacts-and-hashes",
    srcs = [
        "//build:client-targets-and-hashes",
        "//build:docker-artifacts-and-hashes",
        "//build:node-targets-and-hashes",
        "//build:server-targets-and-hashes",
        "//build/debs:debs-and-hashes",
    ],
    visibility = ["//visibility:private"],
)

gcs_upload(
    name = "push-build",
    data = [
        ":_binary-artifacts-and-hashes",
        "//build/release-tars:release-tars-and-hashes",
        "//cluster/gce/gci:gcs-release-artifacts-and-hashes",
    ],
    tags = ["manual"],
    upload_paths = {
        "//:_binary-artifacts-and-hashes": "bin/linux/amd64",
        "//build/release-tars:release-tars-and-hashes": "",
        "//cluster/gce/gci:gcs-release-artifacts-and-hashes": "extra/gce",
    },
)

filegroup(
    name = "package-srcs",
    srcs = glob(
        ["**"],
        exclude = [
            "bazel-*/**",
            "_*/**",
            ".config/**",
            ".git/**",
            ".gsutil/**",
            ".make/**",
        ],
    ),
    visibility = ["//visibility:private"],
)

filegroup(
    name = "all-srcs",
    srcs = [
        ":package-srcs",
        "//api/openapi-spec:all-srcs",
        "//api/swagger-spec:all-srcs",
        "//build:all-srcs",
        "//cluster:all-srcs",
        "//cmd:all-srcs",
        "//docs:all-srcs",
        "//hack:all-srcs",
        "//pkg:all-srcs",
        "//plugin:all-srcs",
        "//staging:all-srcs",
        "//test:all-srcs",
        "//third_party:all-srcs",
        "//translations:all-srcs",
        "//vendor:all-srcs",
    ],
    tags = ["automanaged"],
)

genrule(
    name = "save_git_version",
    outs = ["version"],
    cmd = "grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt | awk '{print $$2}' >$@",
    stamp = 1,
)