ci: the wai-quantum legs build the commit they test, and fail when they did not #666
Merged
dcharlot
merged 2 commits from 2026-11-06 14:42:47 -05:00
ci/quantum-archive-mtime into main 2026-11-06
Merge main into ci/quantum-archive-mtime: the emulated legs bring their own emulator (#674)
All checks were successful
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Has been skipped
wai-quantum on every processor / emulated · powerpc64-unknown-linux-gnu (pull_request) Successful in 3m53s
wai-quantum on every processor / emulated · i686-unknown-linux-gnu (pull_request) Successful in 4m14s
wai-quantum on every processor / emulated · armv7-unknown-linux-gnueabihf (pull_request) Successful in 4m50s
wai-quantum on every processor / emulated · loongarch64-unknown-linux-gnu (pull_request) Successful in 6m28s
wai-quantum on every processor / emulated · s390x-unknown-linux-gnu (pull_request) Successful in 7m46s
wai-quantum on every processor / emulated · aarch64-unknown-linux-gnu (pull_request) Successful in 8m17s
wai-quantum on every processor / emulated · sparc64-unknown-linux-gnu (pull_request) Successful in 13m5s
wai-quantum on every processor / emulated · powerpc64le-unknown-linux-gnu (pull_request) Successful in 13m42s
wai-quantum portable tensor program / tensor program · integrated GPU (framework-128gb) (pull_request) Successful in 18s
wai-quantum CPU vector units / member · vector units, avx2 and avx512 (framework-128gb silicon) (pull_request) Successful in 20s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 17s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 16s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 12s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 13s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 43s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 18m33s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 1m8s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 1m57s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 23s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 38s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 1m3s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 1m32s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 2m16s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 2m42s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 6m43s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 32m51s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 21s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 5m14s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 37s
Main now runs the vector and SME emulated legs under the job's pinned QEMU, so this branch's sve, rvv and SME legs no longer depend on which `linux` runner claims them. The two changes touch different lines of both workflows. Co-Authored-By: Claude Opus 5.5 <[email protected]>
ci: the wai-quantum legs build the commit they test, and fail when they did not
Some checks failed
wai-quantum on every processor / emulated · riscv64gc-unknown-linux-gnu (pull_request) Successful in 3m16s
wai-quantum on every processor / emulated · loongarch64-unknown-linux-gnu (pull_request) Successful in 4m25s
wai-quantum on every processor / emulated · powerpc64le-unknown-linux-gnu (pull_request) Successful in 5m28s
wai-quantum on every processor / emulated · powerpc64-unknown-linux-gnu (pull_request) Successful in 6m8s
wai-quantum on every processor / emulated · aarch64-unknown-linux-gnu (pull_request) Successful in 10m30s
wai-quantum on every processor / emulated · sparc64-unknown-linux-gnu (pull_request) Successful in 15m45s
wai-quantum on every processor / emulated · armv7-unknown-linux-gnueabihf (pull_request) Successful in 23m51s
wai-quantum on every processor / emulated · s390x-unknown-linux-gnu (pull_request) Successful in 32m33s
wai-quantum on every processor / emulated · i686-unknown-linux-gnu (pull_request) Successful in 38m4s
wai-quantum portable tensor program / tensor program · integrated GPU (framework-128gb) (pull_request) Failing after 0s
wai-quantum CPU vector units / member · vector units, avx2 and avx512 (framework-128gb silicon) (pull_request) Failing after 0s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 3m31s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 2m45s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 21s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 1m5s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 29s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 57s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 24s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 29s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 26s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 1m11s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 5m25s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 12m50s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 17s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 12s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 18s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 16s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 21m58s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Has been cancelled
Seven wai-quantum workflows (processors, dsp, dataflow, sme, tensor-engine, tensor-program, vector) take the forge's archive of the commit, extract it to the same path on every run, and build into a target directory kept in the runner's cache. tar gave every file its commit's time, and cargo takes a crate as built when no source file is newer than its last build. So a commit older than the cache's last build ran the binary another commit had built there, and its tests said nothing about its own code. On 5 Nov, 16 emulated legs went green on another commit's binary, and #662's three reds were its legs running #660's two frame_reference tests against #662's check for three. - Fetch the source extracts with tar -m: every file gets the time it was extracted. - That alone does not close it. Each build waits on the host-wide lock after its extraction, and another run can build in the cache meanwhile, after which this one's files are again the older. So every step that builds touches the extracted tree once it holds the lock. - The first build in each such step must print "Compiling wai-quantum v..."; one that compiled nothing fails the leg, saying its tests would run a binary already in the cache. The host-runner legs (macOS, linux-hw, linux-amd, linux-arm64) check out with git into a fresh tree, and are not changed here. Co-Authored-By: Claude Opus 5.5 <[email protected]>