ReviewOS

home-lang/home-os

Self-hosted hardware-in-the-loop CI for the Pi 5 rig: nightly boot/serial/display/audio gates, weekly playback soak + perf + power + OTA round-trip, results into the status page

#111
Open chris opened this 8 days ago ·
8 days ago

Epic: #113 · Milestone: MC9 — Ship

Why

MASTER_PLAN §12 Tier 3 asks for exactly this ("one Raspberry Pi 5 on a network power relay"). The current pi-hardware-test.yml is theatre (#56). The Mac (or a small always-on host) next to the rig becomes a self-hosted runner.

Tasks

  • Runner: GitHub self-hosted runner on the rig host with labels pi5-rig; secrets for the smart plug; concurrency group so only one job touches the Pi.
  • Nightly job: build → TFTP deploy → power-cycle → boot-pi5-serial → fb-pi5-first-pixel → hdmi-audio-tone → boot-to-home-screen → idle-budget → artefacts (serial log, frames, WAV, JSON).
  • Weekly job: tv-ui-60fps, input-latency, playback-1080p-h264, playback-4k-hevc, soak-4h, power-*, ota-roundtrip, install test from a fresh image.
  • Flake policy: hardware retries once with a fresh power cycle; persistent failures open an issue automatically with the artefacts.
  • scripts/generate_status.py ingests the JSON → "Hardware (Pi 5)" section in IMPLEMENTATION_STATUS.md with the last run date; README badge.

Acceptance

Two consecutive weeks of nightly + weekly runs reporting into the status page; a deliberately broken commit turns the badge red.

Size: M · Depends on: #48, #63, #49 · Blocks: v1

Sign in to comment on this issue.