blob: 3c01a4ae4e75d52b8a8b2bae29ae8d9539397ac6 [file] [log] [blame]
Lorenz Brun30167f52021-03-17 17:49:01 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Lorenz Brun30167f52021-03-17 17:49:01 +01002load("//metropolis/node/build:def.bzl", "node_initramfs")
Lorenz Brun30167f52021-03-17 17:49:01 +01003
4go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02005 name = "smoketest_lib",
Lorenz Brun30167f52021-03-17 17:49:01 +01006 srcs = ["main.go"],
7 importpath = "source.monogon.dev/metropolis/vm/smoketest",
8 visibility = ["//visibility:private"],
Tim Windelschmidt244b5672024-02-06 10:18:56 +01009 deps = ["@io_bazel_rules_go//go/runfiles:go_default_library"],
Lorenz Brun30167f52021-03-17 17:49:01 +010010)
11
12node_initramfs(
13 name = "initramfs",
14 files = {
15 "//metropolis/vm/smoketest/payload": "/init",
16 },
Serge Bazanskia3938142022-04-04 17:04:47 +020017 fsspecs = [
18 "//metropolis/node/build:earlydev.fsspec",
19 ],
Lorenz Brun30167f52021-03-17 17:49:01 +010020)
21
22go_binary(
23 name = "smoketest",
24 data = [
25 ":initramfs",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020026 "//osbase/test/ktest:linux-testing",
Lorenz Brun30167f52021-03-17 17:49:01 +010027 "@qemu//:qemu-x86_64-softmmu",
28 ],
Lorenz Brund13c1c62022-03-30 19:58:58 +020029 embed = [":smoketest_lib"],
Tim Windelschmidt0974b222024-01-16 14:04:15 +010030 pure = "on",
31 visibility = ["//visibility:private"],
Lorenz Brun30167f52021-03-17 17:49:01 +010032)
33
Tim Windelschmidt0974b222024-01-16 14:04:15 +010034load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
35
36platform_transition_binary(
37 name = "smoketest_transitioned",
38 binary = ":smoketest",
39 target_platform = "//build/platforms:linux_amd64_static",
40 visibility = ["//visibility:private"],
41)
42
43load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
44
45pkg_tar(
Lorenz Brun30167f52021-03-17 17:49:01 +010046 name = "smoketest_layer",
Tim Windelschmidt0974b222024-01-16 14:04:15 +010047 srcs = [":smoketest_transitioned"],
48 visibility = ["//visibility:private"],
Lorenz Brun30167f52021-03-17 17:49:01 +010049)
50
Tim Windelschmidt0974b222024-01-16 14:04:15 +010051load("@rules_oci//oci:defs.bzl", "oci_image")
52
53oci_image(
54 name = "smoketest_image",
55 base = "@distroless_base",
56 entrypoint = ["/smoketest"],
Lorenz Brun30167f52021-03-17 17:49:01 +010057 tars = [":smoketest_layer"],
58 visibility = ["//visibility:public"],
59 workdir = "/app",
60)