ReviewOS

home-lang/home-os

Add bare-minimum CI: parse all .home + boot kernel_simple in QEMU

#7
Open glennmichael123 opened this 9 days ago ·
9 days ago

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 .home file in kernel/src/. This catches syntax breakage from home-lang upstream and code regressions here. Should run in seconds.
  • On every PR: build kernel_simple.home end-to-end (the same path build-home-zig.sh uses today)
  • On every PR: boot the resulting ISO in QEMU with -no-reboot -display none and 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"

Sign in to comment on this issue.