ci: serialize CI against the live e2e harness on the shared host #114

Merged
robocub merged 1 commit from fix/ci-e2e-host-serialization into master 2026-07-13 02:58:01 +00:00
Collaborator

Serialize CI (ci.yml) against the live E2E harness (e2e.yml) on the shared runner host so CPU-heavy builds stop garbling e2e audio-timing scores (#38; cost 9 false reds on 2026-07-12). The existing e2e-live group only serialized e2e-vs-e2e, never e2e-vs-CI.

  • Both workflows now share a fixed concurrency: group: live-host (cancel-in-progress: false) → Forgejo runs at most one of {any CI run, the harness} at a time.
  • The per-ref CI group is dropped deliberately (a per-ref suffix would let CI overlap e2e); the cost is no same-ref CI superseding.
  • Belt-and-suspenders: CI cargo test/clippy run under nice -n 19 so a build still yields CPU to the audio/bridge threads if cross-workflow group serialization doesn't hold on this Forgejo version.

⚠️ Not live-verified — confirming true cross-workflow serialization needs dispatching a CI push + an e2e run simultaneously and watching the second queue.

🤖 Generated with Claude Code

Serialize CI (`ci.yml`) against the live E2E harness (`e2e.yml`) on the shared runner host so CPU-heavy builds stop garbling e2e audio-timing scores (#38; cost 9 false reds on 2026-07-12). The existing `e2e-live` group only serialized e2e-vs-e2e, never e2e-vs-CI. - Both workflows now share a fixed `concurrency: group: live-host` (`cancel-in-progress: false`) → Forgejo runs at most one of {any CI run, the harness} at a time. - The per-ref CI group is dropped deliberately (a per-ref suffix would let CI overlap e2e); the cost is no same-ref CI superseding. - Belt-and-suspenders: CI `cargo test`/`clippy` run under `nice -n 19` so a build still yields CPU to the audio/bridge threads if cross-workflow group serialization doesn't hold on this Forgejo version. ⚠️ Not live-verified — confirming true cross-workflow serialization needs dispatching a CI push + an e2e run simultaneously and watching the second queue. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ci: serialize CI against the live e2e harness on the shared host
All checks were successful
CI / test (push) Successful in 8m53s
CI / test (pull_request) Successful in 8m57s
91f26e122c
CI (ci.yml) and the live E2E harness (e2e.yml) share one physical host; a
CPU-heavy CI build running alongside an e2e audio scenario garbles the
scenario's timing scores (#38 note — cost 9 false reds on 2026-07-12). The
existing e2e-live group only serialized e2e-vs-e2e, never e2e-vs-CI.

Put both workflows in one fixed `concurrency: group: live-host`
(cancel-in-progress: false) so Forgejo runs at most one of {any CI run, the
harness} at a time. The per-ref CI group is dropped deliberately (a per-ref
suffix would let CI overlap e2e) — the cost is no same-ref CI superseding.
Belt-and-suspenders: the CI cargo test/clippy steps run under `nice -n 19`
so a build still yields CPU to the audio/bridge threads if cross-workflow
group serialization doesn't hold on this Forgejo version.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
robocub merged commit 2fe1ad5d16 into master 2026-07-13 02:58:01 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dark/nether-voicebridge!114
No description provided.