ReviewOS

home-lang/home-os

CI: add parse-rate and boot-qemu-x86_64 gate jobs

#25
Closed chris opened this 8 days ago ·
8 days ago

MASTER_PLAN Phase 0 exit gates + §12 Tier 1.

  • parse-rate: all kernel .home files parse; published as README badge. Uses scripts/parse-rate.sh.
  • boot-qemu-x86_64: boots the MVK ELF in QEMU (-serial stdio -display none), asserts HomeOS <version>: kernel_main reached on serial within 30s, fails red otherwise.

Supersedes part of #7. Part of #21.

8 days ago

Done — CI is now MASTER_PLAN §12 Tier 1, with the job names as the phase gates.

home-compiler      builds one pinned Home revision, shared by every gate
parse-rate         410/410 kernel .home files parse, --strict
stub-register      MASTER_PLAN §7 matches the source, enforced both directions
boot-qemu-x86_64   compiles the MVK, boots it, asserts proof-of-life on serial
shell-syntax       every shell script parses

Scope grew beyond the two jobs in the title:

  • boot-qemu-x86_64 is blocking, not continue-on-error. It passes today (#26), so there was nothing to soften. It uploads the ELF, the flat image, and the serial log on every run, pass or fail.
  • stub-register was added because §7 rule 3 required a check that did not exist, and not one // STUB marker was in the tree. scripts/stub-check.sh parses the §7 table as the single source of truth and fails on an unregistered ID, a marker outside its registered file, an open entry with no marker, or a bare // STUB.
  • The compiler pin has no fallback to main. An unresolvable pin is a red build rather than a silently different compiler (§6 pinning policy).

The old workflow it replaces built kernel/src/kernel.zig and rpi5_main.zig — neither has ever existed — and ran the grep-scripts under tests/ as if they were tests. It was green throughout.

⚠️ One thing needs your attention: GitHub Actions is not creating runs for pushes to this repo. Actions is enabled and both workflows show active, but no run has been created since 2026-05-08 despite several pushes today. That looks like an org-level Actions restriction or a billing/spending limit, which I can't inspect. The gates all pass locally; they just aren't executing in CI yet.

Commit: 9b75d30.

Sign in to comment on this issue.