ci: build and test on push/PR - #92
Conversation
publish.yml only builds/tests on a version-tag push or manual workflow_dispatch, so ordinary pushes and pull requests to main are never built or tested. This adds a separate, additive workflow that runs on push (main) and pull_request, matrixed across ubuntu-latest and windows-latest since the Windows-only code paths (System.IO.Ports, System.Speech, PortAudio native runtime) are currently only exercised at publish time. Doesn't touch publish.yml's release behaviour.
magicbug
left a comment
There was a problem hiding this comment.
Thanks — happy to take a PR CI gate; a couple of scope tweaks please:
- PRs only — drop the
push/maintrigger. I do not need CI on every push tomain; gating pull requests is the useful part. - Linux only for now — start with
ubuntu-latestonly (no Windows matrix). Cheaper/faster check is enough for an initial PR gate; we can add Windows later if it earns its keep.
Something like:
on:
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
# ... setup, build, test as you have themNoted on the rotator test flake — unrelated to this PR, but good to know if CI goes red once or twice.
|
Quick follow-up on the rotator flake you flagged ( Root cause was Should not be a surprise red once the PR CI workflow is in. |
Drop the push/main trigger - PR gating is the useful part, no need for CI on every push to main. Also drop the Windows leg of the matrix for this initial PR gate; can add back later if it earns its keep.
|
Both changes made: dropped the |
publish.ymlonly builds/tests on a version-tag push (v*) or manualworkflow_dispatch, so ordinary pushes and pull requests tomaincurrently aren't built or tested at all. This adds a separate, additiveci.ymlthat runs onpush(main) andpull_request, matrixed acrossubuntu-latestandwindows-latestsince the Windows-only code paths (System.IO.Ports,System.Speech, PortAudio native runtime) are currently only exercised at publish time.Doesn't touch
publish.ymlor its release behaviour.Note on test flakiness: while verifying this locally,
RotatorControllerTests.Update_runs_on_worker_thread_and_tracks_satellitefailed once across three full-suite runs (passed 5/5 in isolation). Looks like a pre-existing race between the worker thread's completion signal and the position-snapshot refresh under full-suite parallel load, unrelated to this change — flagging so it's not a surprise if this workflow shows a failure here on an early run.Happy to adjust scope (e.g. drop the Windows leg, or start Linux-only) if preferred.