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 )