blob: 1dce6e48331d42c11cba80f9cb9f8591803b81b0 [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"],
9)
10
11node_initramfs(
12 name = "initramfs",
13 files = {
14 "//metropolis/vm/smoketest/payload": "/init",
15 },
Serge Bazanskia3938142022-04-04 17:04:47 +020016 fsspecs = [
17 "//metropolis/node/build:earlydev.fsspec",
18 ],
Lorenz Brun30167f52021-03-17 17:49:01 +010019)
20
21go_binary(
22 name = "smoketest",
23 data = [
24 ":initramfs",
25 "//metropolis/test/ktest:linux-testing",
26 "@qemu//:qemu-x86_64-softmmu",
27 ],
Lorenz Brund13c1c62022-03-30 19:58:58 +020028 embed = [":smoketest_lib"],
Tim Windelschmidt0974b222024-01-16 14:04:15 +010029 pure = "on",
30 visibility = ["//visibility:private"],
Lorenz Brun30167f52021-03-17 17:49:01 +010031)
32
Tim Windelschmidt0974b222024-01-16 14:04:15 +010033load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
34
35platform_transition_binary(
36 name = "smoketest_transitioned",
37 binary = ":smoketest",
38 target_platform = "//build/platforms:linux_amd64_static",
39 visibility = ["//visibility:private"],
40)
41
42load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
43
44pkg_tar(
Lorenz Brun30167f52021-03-17 17:49:01 +010045 name = "smoketest_layer",
Tim Windelschmidt0974b222024-01-16 14:04:15 +010046 srcs = [":smoketest_transitioned"],
47 visibility = ["//visibility:private"],
Lorenz Brun30167f52021-03-17 17:49:01 +010048)
49
Tim Windelschmidt0974b222024-01-16 14:04:15 +010050load("@rules_oci//oci:defs.bzl", "oci_image")
51
52oci_image(
53 name = "smoketest_image",
54 base = "@distroless_base",
55 entrypoint = ["/smoketest"],
Lorenz Brun30167f52021-03-17 17:49:01 +010056 tars = [":smoketest_layer"],
57 visibility = ["//visibility:public"],
58 workdir = "/app",
59)