blob: 7264bcf55cbbd1da85c051857dda58b1a9b11bec [file] [log] [blame]
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//metropolis/node/build:def.bzl", "node_initramfs")
go_library(
name = "smoketest_lib",
srcs = ["main.go"],
importpath = "source.monogon.dev/metropolis/vm/smoketest",
visibility = ["//visibility:private"],
deps = ["@io_bazel_rules_go//go/runfiles:go_default_library"],
)
node_initramfs(
name = "initramfs",
files = {
"//metropolis/vm/smoketest/payload": "/init",
},
fsspecs = [
"//metropolis/node/build:earlydev.fsspec",
],
)
go_binary(
name = "smoketest",
data = [
":initramfs",
"//metropolis/test/ktest:linux-testing",
"@qemu//:qemu-x86_64-softmmu",
],
embed = [":smoketest_lib"],
pure = "on",
visibility = ["//visibility:private"],
)
load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
platform_transition_binary(
name = "smoketest_transitioned",
binary = ":smoketest",
target_platform = "//build/platforms:linux_amd64_static",
visibility = ["//visibility:private"],
)
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
pkg_tar(
name = "smoketest_layer",
srcs = [":smoketest_transitioned"],
visibility = ["//visibility:private"],
)
load("@rules_oci//oci:defs.bzl", "oci_image")
oci_image(
name = "smoketest_image",
base = "@distroless_base",
entrypoint = ["/smoketest"],
tars = [":smoketest_layer"],
visibility = ["//visibility:public"],
workdir = "/app",
)