blob: a2790b40e9dacf0cbdd6e5bc51ff2b0c9c638a6f [file] [log] [blame]
Mateusz Zalega43e21072021-10-08 18:05:29 +02001load("@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")
Tim Windelschmidtc2290c22024-08-15 19:56:00 +02003load("//osbase/build:efi.bzl", "efi_unified_kernel_image")
Tim Windelschmidt156248b2025-01-10 00:27:45 +01004load("//osbase/build/genosrelease:defs.bzl", "os_release")
Mateusz Zalega43e21072021-10-08 18:05:29 +02005
6go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02007 name = "installer_lib",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +02008 srcs = ["main.go"],
Lorenz Brun54a5a052023-10-02 16:40:11 +02009 embedsrcs = [
10 "//metropolis/node/core/abloader", #keep
11 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010012 importpath = "source.monogon.dev/metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020013 visibility = ["//visibility:private"],
14 deps = [
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020015 "//osbase/blockdev",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020016 "//osbase/bringup",
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020017 "//osbase/build/mkimage/osimage",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020018 "//osbase/efivarfs",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020019 "//osbase/supervisor",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020020 "//osbase/sysfs",
Lorenz Brund13c1c62022-03-30 19:58:58 +020021 "@org_golang_x_sys//unix",
Mateusz Zalega43e21072021-10-08 18:05:29 +020022 ],
23)
24
25go_binary(
26 name = "installer",
Lorenz Brund13c1c62022-03-30 19:58:58 +020027 embed = [":installer_lib"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020028 visibility = ["//visibility:private"],
29)
30
31node_initramfs(
32 name = "initramfs",
33 files = {
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010034 "/init": "//metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020035 },
Serge Bazanskia3938142022-04-04 17:04:47 +020036 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020037 "//osbase/build:earlydev.fsspec",
Serge Bazanskia3938142022-04-04 17:04:47 +020038 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010039 visibility = ["//metropolis/installer/test:__pkg__"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020040)
41
42os_release(
43 name = "installer-release-info",
44 os_id = "metropolis-installer",
45 os_name = "Metropolis Installer",
Serge Bazanski30494c12023-11-28 16:27:24 +010046 stamp_var = "STABLE_MONOGON_metropolis_version",
Mateusz Zalega43e21072021-10-08 18:05:29 +020047)
48
49efi_unified_kernel_image(
50 name = "kernel",
Lorenz Brun0e057fe2022-01-13 16:19:10 +010051 cmdline = "console=ttyS0,115200 console=tty0 quiet",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010052 initrd = [
Tim Windelschmidt65bf3112024-04-08 21:32:14 +020053 "//third_party:ucode",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010054 ":initramfs",
55 ],
Mateusz Zalega43e21072021-10-08 18:05:29 +020056 kernel = "//third_party/linux",
57 os_release = ":installer-release-info",
58 visibility = ["//visibility:public"],
59)