Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
topolvm-stratis BUILD
3.8 kB · 148 lines
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149load("@aspect_bazel_lib//lib:tar.bzl", "tar")load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary", "platform_transition_filegroup")load("@crates//:defs.bzl", "aliases", "all_crate_deps")load("@rules_oci//oci:defs.bzl", "oci_image", "oci_image_index", "oci_load")load("@rules_rust//cargo:defs.bzl", "cargo_build_script")load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_clippy", "rust_unpretty")load("//:build/prebuilt_protoc.bzl", "prebuilt_protoc")config_setting( name = "fastbuild", values = { "compilation_mode": "fastbuild", },)prebuilt_protoc( name = "protoc", visibility = ["//visibility:public"],)cargo_build_script( name = "build_script", srcs = ["build.rs"], build_script_env = { "PROTOC": "$(execpath //:protoc)", }, data = [ "proto/lvmd.proto", "//:protoc", ], edition = "2024", deps = all_crate_deps( build = True, normal = True, ),)rust_binary( name = "lvmd-stratis", srcs = glob(["src/**/*.rs"]), aliases = aliases(), compile_data = ["Cargo.toml"], edition = "2024", proc_macro_deps = all_crate_deps( proc_macro = True, ), rustc_flags = select({ # Hack to get incremental builds working w/ Bazel. ":fastbuild": ["-Cincremental=/tmp/lvmd-stratis-incremental"], "//conditions:default": [], }) + [ "-Cpanic=abort", ], visibility = ["//visibility:public"], deps = [":build_script"] + all_crate_deps(),)rust_unpretty( name = "lvmd-stratis_unpretty", deps = [":lvmd-stratis"],)rust_clippy( name = "clippy", deps = [":lvmd-stratis"],)[platform_transition_binary( name = "lvmd-stratis_{}".format(arch), binary = ":lvmd-stratis", target_platform = "@aspect_bazel_lib//platforms:linux_{}".format(arch), visibility = ["//visibility:public"],) for arch in ("amd64", "arm64")]genrule( name = "fake-xfsprogs_mtree", srcs = [ "@topolvm-oci", "fake-xfsprogs.sh", ], outs = ["mtree.txt"], cmd = r""" ( echo '#mtree' echo 'fake-xfsprogs.sh uid=0 gid=0 mode=0755 time=0 type=file contents=$(execpath fake-xfsprogs.sh)' # Note that 'xfs_io' must be untouched so mountutil can get the current size. find $(execpath @topolvm-oci)/blobs/sha256 -mindepth 1 \ -exec $(BSDTAR_BIN) -Oxf '{}' var/lib/dpkg/info/xfsprogs.list \; 2>/dev/null \ | grep 'bin/' \ | grep -v xfs_io \ | sed \ -e 's,^/,,' \ -e 's,^sbin,usr/sbin,' \ -e 's,$$, uid=0 gid=0 mode=0755 time=0 type=link link=/fake-xfsprogs.sh,' ) > "$@" """, toolchains = [ "@bsd_tar_toolchains//:resolved_toolchain", ],)tar( name = "fake-xfsprogs_layer", srcs = [ "fake-xfsprogs.sh", "@topolvm-oci", ], mtree = ":fake-xfsprogs_mtree",)tar( name = "lvmd-stratis_layer", srcs = [":lvmd-stratis"], mtree = [ "lvmd uid=0 gid=0 mode=0755 time=0 type=file contents=$(execpath :lvmd-stratis)", ],)oci_image( name = "oci", base = "@topolvm-oci", tars = [ ":fake-xfsprogs_layer", ":lvmd-stratis_layer", ],)[platform_transition_filegroup( name = "oci_{}".format(arch), srcs = [":oci"], target_platform = "@aspect_bazel_lib//platforms:linux_{}".format(arch),) for arch in ("amd64", "arm64")]oci_image_index( name = "oci_index", images = [ ":oci_amd64", ":oci_arm64", ],)oci_load( name = "load", image = ":oci", repo_tags = ["quay.io/refi64/topolvm-stratis:latest"],)exports_files(["proto/lvmd.proto"])