blob: e8d8700a996d15b6b607a1fb39160c37e7cf3fd4 [file] [log] [blame]
Lorenz Brunad5b47d2021-11-09 13:52:56 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidt156248b2025-01-10 00:27:45 +01002load("@rules_pkg//:pkg.bzl", "pkg_zip")
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
27# An intermediary "bundle" format until we finalize the actual bundle format. This is NOT stable until migrated
28# to the actual bundle format.
29# TODO(lorenz): Replace this
30pkg_zip(
31 name = "testos_bundle",
32 srcs = [
33 ":kernel_efi",
Mateusz Zalega8c2c7712022-01-25 19:42:21 +010034 ":verity_rootfs",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010035 ],
Lorenz Brunaadeb792023-03-27 15:53:56 +020036 visibility = ["//visibility:public"],
Lorenz Brunad5b47d2021-11-09 13:52:56 +010037)
38
Jan Schär5fdca562025-04-14 11:33:29 +000039oci_os_image(
40 name = "testos_image",
41 srcs = {
42 "system": ":verity_rootfs",
43 "kernel.efi": ":kernel_efi",
44 },
45 visibility = ["//visibility:public"],
46)
47
Lorenz Brunad5b47d2021-11-09 13:52:56 +010048go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +020049 name = "testos_lib",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010050 srcs = ["main.go"],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010051 importpath = "source.monogon.dev/metropolis/installer/test/testos",
Lorenz Brunad5b47d2021-11-09 13:52:56 +010052 visibility = ["//visibility:private"],
Lorenz Brund13c1c62022-03-30 19:58:58 +020053 deps = ["@org_golang_x_sys//unix"],
Lorenz Brunad5b47d2021-11-09 13:52:56 +010054)
55
56go_binary(
57 name = "testos",
Lorenz Brund13c1c62022-03-30 19:58:58 +020058 embed = [":testos_lib"],
Lorenz Brunad5b47d2021-11-09 13:52:56 +010059 visibility = ["//visibility:public"],
60)