blob: 6225e2d2d13069298f0821ac544f10796558f027 [file] [log] [blame]
Lorenz Brun30167f52021-03-17 17:49:01 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidtc2290c22024-08-15 19:56:00 +02002load("//osbase/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"],
Tim Windelschmidt82e6af72024-07-23 00:05:42 +00007 data = [
8 "@qemu//:qemu-x86_64-softmmu",
9 ],
Lorenz Brun30167f52021-03-17 17:49:01 +010010 importpath = "source.monogon.dev/metropolis/vm/smoketest",
11 visibility = ["//visibility:private"],
Tim Windelschmidt82e6af72024-07-23 00:05:42 +000012 x_defs = {
13 "xQemuPath": "$(rlocationpath @qemu//:qemu-x86_64-softmmu )",
14 },
Tim Windelschmidt244b5672024-02-06 10:18:56 +010015 deps = ["@io_bazel_rules_go//go/runfiles:go_default_library"],
Lorenz Brun30167f52021-03-17 17:49:01 +010016)
17
18node_initramfs(
19 name = "initramfs",
20 files = {
21 "//metropolis/vm/smoketest/payload": "/init",
22 },
Serge Bazanskia3938142022-04-04 17:04:47 +020023 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020024 "//osbase/build:earlydev.fsspec",
Serge Bazanskia3938142022-04-04 17:04:47 +020025 ],
Lorenz Brun30167f52021-03-17 17:49:01 +010026)
27
28go_binary(
29 name = "smoketest",
Lorenz Brund13c1c62022-03-30 19:58:58 +020030 embed = [":smoketest_lib"],
Tim Windelschmidt0974b222024-01-16 14:04:15 +010031 pure = "on",
32 visibility = ["//visibility:private"],
Lorenz Brun30167f52021-03-17 17:49:01 +010033)
34
Tim Windelschmidt0974b222024-01-16 14:04:15 +010035load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
36
37platform_transition_binary(
38 name = "smoketest_transitioned",
39 binary = ":smoketest",
40 target_platform = "//build/platforms:linux_amd64_static",
41 visibility = ["//visibility:private"],
42)
43
44load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
45
46pkg_tar(
Lorenz Brun30167f52021-03-17 17:49:01 +010047 name = "smoketest_layer",
Tim Windelschmidt0974b222024-01-16 14:04:15 +010048 srcs = [":smoketest_transitioned"],
49 visibility = ["//visibility:private"],
Lorenz Brun30167f52021-03-17 17:49:01 +010050)
51
Tim Windelschmidt0974b222024-01-16 14:04:15 +010052load("@rules_oci//oci:defs.bzl", "oci_image")
53
54oci_image(
55 name = "smoketest_image",
56 base = "@distroless_base",
57 entrypoint = ["/smoketest"],
Lorenz Brun30167f52021-03-17 17:49:01 +010058 tars = [":smoketest_layer"],
59 visibility = ["//visibility:public"],
60 workdir = "/app",
61)