Context: CI was removed during the Buck2 migration and nothing enforces build/test/lints on PRs today. This is the blocker for almost every other quality initiative.
Scope:
- Create
.github/workflows/ci.ymlwith jobs:fmt→cargo fmt --checkcheck→just checkclippy→just clippytest-host→just testtest-qemu-riscv64→ smoke test (tracked separately; start withcontinue-on-error: true)buck2-audit→ a fewbuck2 auditsanity checks
- Use
DeterminateSystems/nix-installer-action+magic-nix-cachefor the toolchain. - Cache
buck-out/v2/cacheviaactions/cache. - Pin runners to
ubuntu-24.04, notubuntu-latest.
Out of scope: miri, docs, benches, merge queue — each has its own issue.
Acceptance: a PR with a trivial change goes green end-to-end.