blob: 160ebf875d6147d672644b83ba5d25d603ea0fbd [file] [log] [blame]
Lorenz Brun276a7462023-07-12 21:28:54 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
2load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
3
4go_library(
5 name = "httpserver_lib",
6 srcs = ["main.go"],
7 importpath = "source.monogon.dev/metropolis/test/e2e/httpserver",
8 visibility = ["//visibility:private"],
9)
10
11go_binary(
12 name = "httpserver",
13 embed = [":httpserver_lib"],
14 pure = "on",
15 visibility = ["//visibility:private"],
16)
17
18platform_transition_binary(
19 name = "httpserver_transitioned",
20 binary = ":httpserver",
21 target_platform = "//build/platforms:linux_amd64_static",
22 visibility = ["//visibility:private"],
23)
24
25load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
26
27pkg_tar(
28 name = "httpserver_layer",
29 srcs = [":httpserver_transitioned"],
30 visibility = ["//visibility:private"],
31)
32
33load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
34
35oci_image(
36 name = "httpserver_image",
37 base = "@distroless_base",
38 entrypoint = ["/httpserver"],
39 tars = [":httpserver_layer"],
40 visibility = ["//metropolis/test/e2e:__pkg__"],
41 workdir = "/app",
42)
43
44oci_tarball(
45 name = "httpserver_tarball",
46 image = ":httpserver_image",
47 repo_tags = ["bazel/metropolis/test/e2e/httpserver:httpserver_image"],
48 visibility = ["//metropolis/test/e2e:__pkg__"],
49)