github.com/yrj2011/jx-test-infra@v0.0.0-20190529031832-7a2065ee98eb/label_sync/BUILD.bazel (about)

     1  package(default_visibility = ["//visibility:public"])
     2  
     3  licenses(["notice"])
     4  
     5  # Usage:
     6  #   bazel run //label_sync:image  # build image
     7  #   bazel run //label_sync:push  # push image (after building)
     8  
     9  load(
    10      "@io_bazel_rules_go//go:def.bzl",
    11      "go_binary",
    12      "go_library",
    13      "go_test",
    14  )
    15  load("@io_bazel_rules_docker//go:image.bzl", "go_image")
    16  load("@io_bazel_rules_docker//docker:docker.bzl", "docker_bundle")
    17  load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")
    18  
    19  docker_bundle(
    20      name = "bundle",
    21      images = {
    22          "{STABLE_DOCKER_REPO}/label_sync:{DOCKER_TAG}": ":label_sync-image",
    23          "{STABLE_DOCKER_REPO}/label_sync:latest": ":label_sync-image",
    24          "{STABLE_DOCKER_REPO}/label_sync:latest-{BUILD_USER}": ":label_sync-image",
    25      },
    26      stamp = True,
    27  )
    28  
    29  docker_push(
    30      name = "push",
    31      bundle = ":bundle",
    32  )
    33  
    34  # bazel-bin/.../label_sync loads the image into docker
    35  # bazel-bin/.../label_sync.binary is the binary
    36  go_image(
    37      name = "label_sync-image",
    38      base = "@distroless-base//image",
    39      embed = [":go_default_library"],
    40      pure = "on",
    41      tags = ["automanaged"],
    42  )
    43  
    44  go_test(
    45      name = "go_default_test",
    46      srcs = ["main_test.go"],
    47      data = [
    48          "//label_sync:test_examples",
    49      ],
    50      embed = [":go_default_library"],
    51      tags = ["automanaged"],
    52  )
    53  
    54  go_library(
    55      name = "go_default_library",
    56      srcs = ["main.go"],
    57      importpath = "k8s.io/test-infra/label_sync",
    58      tags = ["automanaged"],
    59      deps = [
    60          "//prow/config:go_default_library",
    61          "//prow/flagutil:go_default_library",
    62          "//prow/github:go_default_library",
    63          "//vendor/github.com/ghodss/yaml:go_default_library",
    64          "//vendor/github.com/sirupsen/logrus:go_default_library",
    65      ],
    66  )
    67  
    68  filegroup(
    69      name = "test_examples",
    70      srcs = glob(["*.yaml"]),
    71  )
    72  
    73  filegroup(
    74      name = "package-srcs",
    75      srcs = glob(["**"]),
    76      tags = ["automanaged"],
    77      visibility = ["//visibility:private"],
    78  )
    79  
    80  filegroup(
    81      name = "all-srcs",
    82      srcs = [":package-srcs"],
    83      tags = ["automanaged"],
    84  )
    85  
    86  # Delete after gazelle stops forcing its creation
    87  go_binary(
    88      name = "label_sync",
    89      embed = [":go_default_library"],
    90  )