Skip to content

ci: build and test on push/PR - #92

Merged
magicbug merged 2 commits into
magicbug:mainfrom
chrisdebian:ci/add-push-pr-workflow
Aug 2, 2026
Merged

ci: build and test on push/PR#92
magicbug merged 2 commits into
magicbug:mainfrom
chrisdebian:ci/add-push-pr-workflow

Conversation

@chrisdebian

Copy link
Copy Markdown
Contributor

publish.yml only builds/tests on a version-tag push (v*) or manual workflow_dispatch, so ordinary pushes and pull requests to main currently aren't built or tested at all. This adds a separate, additive ci.yml 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 or its release behaviour.

Note on test flakiness: while verifying this locally, RotatorControllerTests.Update_runs_on_worker_thread_and_tracks_satellite failed 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.

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 magicbug left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — happy to take a PR CI gate; a couple of scope tweaks please:

  1. PRs only — drop the push / main trigger. I do not need CI on every push to main; gating pull requests is the useful part.
  2. Linux only for now — start with ubuntu-latest only (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 them

Noted on the rotator test flake — unrelated to this PR, but good to know if CI goes red once or twice.

@magicbug

magicbug commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Quick follow-up on the rotator flake you flagged (RotatorControllerTests.Update_runs_on_worker_thread_and_tracks_satellite): that is now fixed on main.

Root cause was UpdateSynchronously signalling completion before display Az/El were polled (filled on the next worker loop tick). Track path now polls immediately after SetPosition, and the test disposes the controller so the worker does not keep running under parallel suite load.

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.
@chrisdebian

Copy link
Copy Markdown
Contributor Author

Both changes made: dropped the push/main trigger (PR-only now), and dropped the Windows leg for this initial gate (ubuntu-latest only). Thanks for the quick review.

@magicbug
magicbug merged commit cdc8686 into magicbug:main Aug 2, 2026
1 check passed
@chrisdebian
chrisdebian deleted the ci/add-push-pr-workflow branch August 3, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants