crates/nornir-build-thing/tests/fixtures/holger-build-variants.toml
# holger's build space — THREE split executables from one source tree, the
# driving example for nornir build-thing (task #36). One product, built three
# ways, each producing ITS OWN binary:
#
# embedded — the tiniest airgap/edge build (no default features, `embedded`
# feature only) → bin `holger-embedded`
# minimal — a lean server without the fat GUI/warehouse extras → `holger-minimal`
# full — everything on (GUI + served + warehouse) → `holger-full`
#
# `nornir build --list-variants` shows all three; `nornir build --variant full`
# validates + materializes + runs the right `cargo build` and (with --attest)
# captures a build-provenance attestation.
[build]
# The feature universe holger offers across the three builds.
offers = ["embedded", "minimal", "full", "served", "gui"]
# A build is exactly ONE fatness — the three are mutually exclusive.
exclusive = [["embedded", "minimal", "full"]]
# Cargo `[[bin]] required-features`, mirrored so a bad combo fails fast.
[build.required]
"holger-embedded" = ["embedded"]
"holger-minimal" = ["minimal"]
"holger-full" = ["full"]
# ── embedded: the tiniest build ─────────────────────────────────────────
[[build.variant]]
name = "embedded"
package = "holger-embedded"
bin = "holger-embedded"
features = ["embedded"]
no_default_features = true
profile = "release"
# ── minimal: lean server ────────────────────────────────────────────────
[[build.variant]]
name = "minimal"
package = "holger-minimal"
bin = "holger-minimal"
features = ["minimal", "served"]
no_default_features = true
profile = "release"
# ── full: everything on ─────────────────────────────────────────────────
[[build.variant]]
name = "full"
package = "holger-full"
bin = "holger-full"
features = ["full", "served", "gui"]
profile = "release"