memory: record Beast parallel Windows build (lever A) — 336s, target-dir + cargo-fetch gotchas
This commit is contained in:
@@ -8,7 +8,27 @@ metadata:
|
||||
Set up 2026-06-12. **GURU-BEAST-ROG = PRIMARY Windows build host; Pluto (Administrator@172.16.3.36)
|
||||
= FALLBACK.** `deploy/build-pipeline/build-windows.sh` selects via
|
||||
`attempt_build beast || attempt_build pluto` — falls back if Beast is **unreachable/down OR its
|
||||
build fails**. Beast is ~10x faster than Pluto (full set ~12-15 min vs ~21).
|
||||
build fails**.
|
||||
|
||||
## Parallel build (lever A, 2026-06-12) — ~5.6 min, was ~10-21 min
|
||||
`run_remote_build()` parallelises the 8 variants across concurrent SSH sessions instead of one
|
||||
serial `cmd /c` chain (the release profile is opt-level=z + lto=true + codegen-units=1, so each
|
||||
variant's codegen/LTO is single-threaded — concurrency overlaps those tails). Beast: 24c/32t, 128 GB.
|
||||
- **WAVE 1** (5 concurrent, stable toolchain): agent amd64 (`target/release`) + debug
|
||||
(`target/debug-agent`) + x86 (`target/x86`), tray, cleanup.
|
||||
- **WAVE 2** (2 concurrent, Rust 1.77): legacy amd64 (`target/legacy-x64`) + legacy x86
|
||||
(`target/legacy-x86`). MSI (WiX) runs after wave 1, overlaps wave 2.
|
||||
- **Two hard rules learned (both broke the build on BOTH hosts first try):**
|
||||
1. **Every concurrent cargo needs its OWN `--target-dir`** — sharing one (e.g. amd64+x86 both on
|
||||
`target/`) makes them block on cargo's per-build-dir lock and run serially ("Blocking waiting
|
||||
for file lock on build directory"). `copy_artifacts()` paths must match the per-variant dirs.
|
||||
2. **Do NOT pre-resolve the legacy lock with `cargo +1.77 fetch`/`generate-lockfile`** — a
|
||||
full-graph resolve on 1.77 dies parsing a transitive `edition2024` dep (wit-bindgen),
|
||||
`rc=101`. Just `move Cargo.lock aside` and let the two `cargo +1.77 build --features legacy`
|
||||
invocations resolve scoped (no wit-bindgen); cargo's package-cache lock serialises their brief
|
||||
resolve safely, then they compile in parallel. Restore the lock after.
|
||||
Result: v0.6.66 built on Beast in **336s** (cargo phase 319s), all 8 artifacts signed + published
|
||||
beta. vs Beast's first serial+cold build 622s and Pluto's 1269s.
|
||||
|
||||
## How .30 reaches Beast
|
||||
- Beast is on Wi-Fi `10.2.51.228` (a DIFFERENT LAN than the .30 office 172.16.3.x) + tailnet
|
||||
|
||||
Reference in New Issue
Block a user