Skip to content

ci: nightly hardware-attached bring-up workflow scaffold (#696) - #710

Merged
zackees merged 1 commit into
mainfrom
ci/696-hardware-ci-scaffold
Jun 20, 2026
Merged

ci: nightly hardware-attached bring-up workflow scaffold (#696)#710
zackees merged 1 commit into
mainfrom
ci/696-hardware-ci-scaffold

Conversation

@zackees

Copy link
Copy Markdown
Member

#696. Scaffolds the workflow + per-board fingerprint files + setup docs so registering a self-hosted runner with the hw-ci label is the only remaining step to activate hardware CI.

What ships

  • .github/workflows/hw-ci.yml — schedule (nightly 02:30 UTC) + PR hw-ci label trigger + workflow_dispatch. Matrix per board family (esp32s3 / lpc845brk / pico / teensy41 / samd51) with fail-fast off so a single-board hardware fault doesn't mask the others. "Detect attached hardware" step consults tests/hw/fingerprints/<board>.txt and skips with a warning when no listed VID:PID is present. On nightly cron failure, opens or updates an hw-ci-failure label issue with the run URL.
  • tests/hw/README.md — fixture-layout convention + "adding a new board family" recipe.
  • tests/hw/fingerprints/README.md + per-board .txt files (esp32s3, lpc845brk, pico, teensy41, samd51) — VID:PID-per-line presence checks. Pulled from the same BOARD_FINGERPRINTS table the runtime serial-probe CLI uses.
  • agents/docs/hardware-ci-setup.md — runner-registration recipe, udev rules, first-run validation steps.

Out of scope (operational, not source)

  • Registering the runner itself.
  • Per-board known-good firmware blobs (committed once the boards are wired in; layout documented in tests/hw/README.md).

Closes#696.

#696. Scaffolds the workflow + per-board fingerprint
files + setup docs so registering a self-hosted runner with the
hw-ci label is the only remaining step to activate hardware CI.
What ships:
- .github/workflows/hw-ci.yml — schedule (nightly 02:30 UTC) + PR
hw-ci-label trigger + workflow_dispatch. runs-on:
[self-hosted, hw-ci]; double-guarded with an 'if:' that skips
when no runner is registered. Matrix per board family
(esp32s3 / lpc845brk / pico / teensy41 / samd51) with fail-fast
off so a single-board hardware fault doesn't mask the others.
'Detect attached hardware' step consults
tests/hw/fingerprints/<board>.txt and skips with a warning when
none of the listed VID:PIDs are present. Deploy + bring-up
steps run only when hardware is detected. On nightly cron
failure, opens or updates an hw-ci-failure label issue with
the run URL.
- tests/hw/README.md — fixture-layout convention + 'adding a new
board family' recipe.
- tests/hw/fingerprints/README.md + per-board .txt files
(esp32s3, lpc845brk, pico, teensy41, samd51) — VID:PID-per-line
presence checks. Pulled from the same BOARD_FINGERPRINTS table
the runtime serial-probe CLI uses, so the two stay in sync.
- agents/docs/hardware-ci-setup.md — runner-registration recipe,
udev rules, first-run validation steps.
Out of scope (operational):
- Registering the runner itself (hardware + GitHub UI step,
not source).
- Per-board known-good firmware blobs (committed once the boards
are wired in; tests/hw/README.md documents the
known_good_<board>.{bin,elf,uf2} layout).
Closes#696.
@coderabbitai

Copy link
Copy Markdown

Warning

Review limit reached

@zackees, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 42 minutes and 6 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3f01b52e-18ea-497e-9424-3b361d425dce

📥 Commits

Reviewing files that changed from the base of the PR and between f5b720f and bce7c48.

📒 Files selected for processing (9)
  • .github/workflows/hw-ci.yml
  • agents/docs/hardware-ci-setup.md
  • tests/hw/README.md
  • tests/hw/fingerprints/README.md
  • tests/hw/fingerprints/esp32s3.txt
  • tests/hw/fingerprints/lpc845brk.txt
  • tests/hw/fingerprints/pico.txt
  • tests/hw/fingerprints/samd51.txt
  • tests/hw/fingerprints/teensy41.txt
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/696-hardware-ci-scaffold

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@zackees
zackees merged commit b22a016 into mainJun 20, 2026
85 of 91 checks passed
@zackees
zackees deleted the ci/696-hardware-ci-scaffold branch June 20, 2026 21:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

ci: nightly hardware-attached bring-up CI runner (multi-family)

1 participant

@zackees