Skip to main content

max / goingson

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: 5b6128703a27274cdec6cea2259f140647357f07
Parent: 56e70af
1 file changed, +15 insertions, -12 deletions
@@ -4,35 +4,38 @@
4 4 // on the Azure certificate-history requirement, see deploy.md). This recipe is
5 5 // best-effort and has not been exercised end-to-end through Bento.
6 6 //
7 - // Two Windows-specific deviations from the other recipes:
8 - // - The checkout lives at a Windows path, NOT the unix repo() value, so this
9 - // recipe hard-codes it and does not call repo().
10 - // - Commands run through PowerShell over ssh; quoting is delicate. The
11 - // `passwords.ps1` profile supplies the signing env (mirrors deploy.md).
7 + // One Windows-specific deviation from the other recipes: commands run through
8 + // PowerShell over ssh, and quoting is delicate. The `passwords.ps1` profile
9 + // supplies the signing env (mirrors deploy.md). The checkout is at a Windows
10 + // path, but that is the topology's business now (`repo_by_host`), so repo()
11 + // answers it like anywhere else.
12 12 // The .msi / NSIS .exe globs are handed to collect directly (windows-x86 is a
13 13 // remote host, so collect leaves the glob unquoted for the remote shell).
14 14
15 15 let h = build_host();
16 16 let v = version();
17 - let win_repo = "C:/Users/me/Code/Apps/goingson";
17 + let r = repo();
18 18
19 19 step("checkout");
20 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; git pull --ff-only\"");
20 + // Pin to the release tag v<version>, not whatever main is at pull time. The
21 + // same barrier every other target of this release passes.
22 + let sha = checkout_sha(h);
23 + log("pinned " + h + " to v" + v + " @ " + sha);
21 24
22 25 // Gate: no artifact is built from code that fails clippy or its tests. It runs
23 26 // on this target's own build host, so a break confined to one platform is
24 27 // caught where it would have shipped.
25 28 step("prebuild");
26 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings\"");
27 - sh_ok(h, "powershell -Command \"cd " + win_repo + "; cargo test --workspace " + feature_flags() + "\"");
29 + sh_ok(h, "powershell -Command \"cd " + r + "; cargo clippy --workspace --all-targets " + feature_flags() + " -- -D warnings\"");
30 + sh_ok(h, "powershell -Command \"cd " + r + "; cargo test --workspace " + feature_flags() + "\"");
28 31
29 32 step("build");
30 33 sh_ok(h, "powershell -Command \". C:\\Users\\me\\.tauri\\passwords.ps1; " +
31 34 "$env:TAURI_SIGNING_PRIVATE_KEY='C:\\Users\\me\\.tauri\\goingson.key'; " +
32 35 "$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$env:GOINGSON_TAURI_PASSWORD; " +
33 - "cd " + win_repo + "; cargo tauri build\"");
36 + "cd " + r + "; cargo tauri build\"");
34 37
35 38 step("collect");
36 - collect(h, win_repo + "/target/release/bundle/msi/*.msi", "goingson", v);
37 - collect(h, win_repo + "/target/release/bundle/nsis/*-setup.exe", "goingson", v);
39 + collect(h, r + "/target/release/bundle/msi/*.msi", "goingson", v);
40 + collect(h, r + "/target/release/bundle/nsis/*-setup.exe", "goingson", v);
38 41 log("GoingsOn windows/x86_64 v" + v + " collected (unsigned, unsupported).");