blob: 0819193b93cf4a7c41368a28503dcbef69c6dcf8 [file] [log] [blame]
Lorenz Brunad5b47d2021-11-09 13:52:56 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Jan Schär07e69052025-05-12 16:34:15 +00002load("//osbase/build/genproductinfo:test.bzl", "test_product_info")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01003load("//osbase/build/mkerofs:def.bzl", "erofs_image")
Jan Schär5fdca562025-04-14 11:33:29 +00004load("//osbase/build/mkoci:def.bzl", "oci_os_image")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01005load("//osbase/build/mkpayload:def.bzl", "efi_unified_kernel_image")
6load("//osbase/build/mkverity:def.bzl", "verity_image")
Lorenz Brunad5b47d2021-11-09 13:52:56 +01007
8erofs_image(
9 name = "rootfs",
10 files = {
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010011 "/init": ":testos",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010012 },
13)
14
Mateusz Zalega8c2c7712022-01-25 19:42:21 +010015verity_image(
16 name = "verity_rootfs",
17 source = ":rootfs",
18)
19
Lorenz Brunad5b47d2021-11-09 13:52:56 +010020efi_unified_kernel_image(
21 name = "kernel_efi",
Lorenz Brunad131882023-06-28 16:42:20 +020022 cmdline = "quiet console=ttyS0 init=/init",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010023 kernel = "//third_party/linux",
Mateusz Zalega8c2c7712022-01-25 19:42:21 +010024 verity = ":verity_rootfs",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010025)
26
Jan Schär07e69052025-05-12 16:34:15 +000027test_product_info(
28 name = "product_info",
29 os_id = "testos",
30 os_name = "Test OS",
31)
32
Jan Schär5fdca562025-04-14 11:33:29 +000033oci_os_image(
34 name = "testos_image",
35 srcs = {
36 "system": ":verity_rootfs",
37 "kernel.efi": ":kernel_efi",
38 },
Jan Schär07e69052025-05-12 16:34:15 +000039 product_info = ":product_info",
Jan Schär5fdca562025-04-14 11:33:29 +000040 visibility = ["//visibility:public"],
41)
42
Lorenz Brunad5b47d2021-11-09 13:52:56 +010043go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +020044 name = "testos_lib",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010045 srcs = ["main.go"],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010046 importpath = "source.monogon.dev/metropolis/installer/test/testos",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010047 visibility = ["//visibility:private"],
Lorenz Brund13c1c62022-03-30 19:58:58 +020048 deps = ["@org_golang_x_sys//unix"],
Lorenz Brunad5b47d2021-11-09 13:52:56 +010049)
50
51go_binary(
52 name = "testos",
Lorenz Brund13c1c62022-03-30 19:58:58 +020053 embed = [":testos_lib"],
Lorenz Brunad5b47d2021-11-09 13:52:56 +010054 visibility = ["//visibility:public"],
55)