Skip to main content

max / audiofiles

Port the Windows recipe to repo() and checkout_sha() The checkout path is a Windows path, which the topology now declares per host (bento `repo_by_host`), so the recipe no longer hard-codes it. Hard-coding was also what kept this recipe off checkout_sha(h): that pins the host to the release tag and builds its git commands from the app's path, so the recipe was stuck on `git pull --ff-only` and built whatever main was at pull time.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-07 18:01 UTC
Signed with PGP, not checked
Commit: 70219e1571b49ddecfe69a7cdb604aa0086fa620
Parent: 1114ce7
1 file changed, +14 insertions, -10 deletions
@@ -4,28 +4,32 @@
4 4 // see docs/deploy.md). Best-effort, not exercised end-to-end through Bento.
5 5 //
6 6 // Built NATIVELY on windows-x86 via dist/build-msi-native.ps1 (WiX), the
7 - // no-cross-compile house rule rules out build-windows.sh's cargo-xwin path. The
8 - // checkout is at a Windows path (not repo()), and commands run through
9 - // PowerShell over ssh. Output: dist/Audiofiles_<version>_x86_64.msi (+ .exe).
7 + // no-cross-compile house rule rules out build-windows.sh's cargo-xwin path.
8 + // Commands run through PowerShell over ssh. The checkout is at a Windows path,
9 + // which the topology declares (`repo_by_host`), so repo() answers it like
10 + // anywhere else. Output: dist/Audiofiles_<version>_x86_64.msi (+ .exe).
10 11
11 12 let h = build_host();
12 13 let v = version();
13 - let win_repo = "C:/Users/me/Code/Apps/audiofiles";
14 + let r = repo();
14 15
15 16 step("checkout");
16 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; git pull --ff-only\"");
17 + // Pin to the release tag v<version>, not whatever main is at pull time. The
18 + // same barrier every other target of this release passes.
19 + let sha = checkout_sha(h);
20 + log("pinned " + h + " to v" + v + " @ " + sha);
17 21
18 22 // Gate: no artifact is built from code that fails clippy or its tests. It runs
19 23 // on this target's own build host, so a break confined to one platform is
20 24 // caught where it would have shipped.
21 25 step("prebuild");
22 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings\"");
23 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; cargo test --workspace " + feature_flags() + "\"");
26 + sh_ok(h, "powershell -Command \"cd " + r + "; cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings\"");
27 + sh_ok(h, "powershell -Command \"cd " + r + "; cargo test --workspace " + feature_flags() + "\"");
24 28
25 29 step("build");
26 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; pwsh -File dist\\build-msi-native.ps1\"");
30 + sh_ok(h, "powershell -Command \"cd " + r + "; pwsh -File dist\\build-msi-native.ps1\"");
27 31
28 32 step("collect");
29 - collect(h, win_repo + "/dist/*.msi", "audiofiles", v);
30 - collect(h, win_repo + "/dist/Audiofiles*.exe", "audiofiles", v);
33 + collect(h, r + "/dist/*.msi", "audiofiles", v);
34 + collect(h, r + "/dist/Audiofiles*.exe", "audiofiles", v);
31 35 log("audiofiles windows/x86_64 v" + v + " collected (unsigned, unsupported).");