Context
There's no CI workflow visible in .github/workflows/. With 232k LOC of .home kernel code, almost none of which is currently part of an end-to-end build, the absence of CI means we have no signal at all when a change breaks things.
The bar for "useful" CI here is very low — almost anything is better than zero.
Proposal
Tier 1 — keeps the lights on:
- On every PR: run
home check(or equivalent parse-only pass) over every.homefile inkernel/src/. This catches syntax breakage from home-lang upstream and code regressions here. Should run in seconds. - On every PR: build
kernel_simple.homeend-to-end (the same pathbuild-home-zig.shuses today) - On every PR: boot the resulting ISO in QEMU with
-no-reboot -display noneand check that it produces expected serial output within N seconds (smoke test)
Tier 2 — unlocks confidence:
- Once
tests/has runnable kernel tests, wire those up - Run the security-audit / memory-analysis scripts on PR
- Cache the home-lang compiler build between runs (it's the slow part)
Tier 3 — once arm64 lands:
- Cross-build for aarch64 in CI (no boot needed yet — just verifying the assembler/linker step)
- Optional: boot RPi5 image in QEMU's
-machine raspi4b(closest available) for smoke testing
Notes
- GitHub-hosted runners can do x86_64 QEMU fine; the boot smoke test should fit in standard runner time
- Cross-arm64 builds need
aarch64-elf-gcc(the README already lists this for local builds; CI just needs to install it) - This issue is unblocked by everything else — CI even on a known-broken codebase tells us "still broken in the same way" or "now broken in a new way"