Skip to main content

max / balanced_breakfast

1.7 KB · 40 lines History Blame Raw
1 // Balanced Breakfast, Linux release recipe for Bento (x86_64 fw13, aarch64 astra).
2 //
3 // BB is a Tauri app like GoingsOn; one recipe serves both arches via
4 // build_host(). Ports _private/docs/balanced_breakfast/deploy.md (Linux
5 // sections): a signed `cargo tauri build` (updater key signs the OTA artifact),
6 // then collect the AppImage + .deb. BB bundles its Rhai plugins + themes as
7 // resources at build time. OTA upload stays manual via the MNW dashboard.
8 //
9 // Cargo features come from the app's `features` list in bento.toml, not from
10 // this file, so every target ships the same set.
11 //
12 // Note: BB is NOT in the launch wave; ships in a later wave.
13
14 let h = build_host();
15 let v = version();
16 let r = repo();
17
18 step("checkout");
19 sh_ok(h, "cd " + r + " && git pull --ff-only");
20
21 // Gate: no artifact is built from code that fails clippy or its tests. It runs
22 // on this target's own build host, so a break confined to one platform is
23 // caught where it would have shipped.
24 step("prebuild");
25 sh_ok(h, "cd " + r + " && cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings");
26 sh_ok(h, "cd " + r + " && cargo test --workspace " + feature_flags());
27
28 step("build");
29 sh_ok(h, "cd " + r + " && . ~/.tauri/passwords.env && " +
30 "TAURI_SIGNING_PRIVATE_KEY=$HOME/.tauri/balanced-breakfast.key " +
31 "TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$BB_TAURI_PASSWORD " +
32 "cargo tauri build " + feature_flags());
33
34 step("collect");
35 let appimage = resolve_artifact(h, r + "/target/release/bundle/appimage/*.AppImage");
36 collect(h, appimage, "balanced_breakfast", v);
37 let deb = resolve_artifact_opt(h, r + "/target/release/bundle/deb/*.deb");
38 if deb != "" { collect(h, deb, "balanced_breakfast", v); }
39 log("Balanced Breakfast " + target() + " v" + v + " collected.");
40