ci: add GitHub Actions workflows -- fast tests on push/PR, slow suite weekly - #52
Open
petercorke wants to merge 1 commit into
Open
petercorke wants to merge 1 commit into
petercorke wants to merge 1 commit into
Conversation
… weekly RVC3-python had no real CI at all -- only GitHub's automatic dependency- graph workflow, no .github/dependabot.yml, and zero check-runs on main. The repo's own test suite (fast unit tests, plus the notebook/example suite gated behind --runall) has only ever been run by hand; every fix landed this cycle (the test_pose2d typo, the clean-install dependency gaps in #49) was only ever caught that way. ci.yml: runs `pytest` (the fast subset; slow-marked notebook/example tests are skipped by default per tests/conftest.py) on push/PR to main, across the full declared Python 3.10-3.14 support matrix. weekly-notebooks.yml: runs `pytest --runall` (every chapter notebook + RVC3/examples script) on a schedule instead of gating every push -- real matplotlib rendering across 16+ notebooks is too slow for that. Deliberately a separate workflow rather than folded into ci.yml, so a slow-suite failure doesn't block merges or flip the main CI badge -- it's meant to be a weekly signal to notice, not a merge gate. Timed (19:13 UTC Friday) to finish with real margin before the Saturday- morning (Brisbane) ecosystem-scan routines at 22:45/23:00 UTC Friday, in case either reads per-repo CI status. Also uploads the per-notebook report tests/reports/latest.md (already written by test_notebooks.py) as a build artifact. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
RVC3-python had no real CI at all — confirmed via the GitHub API that the only registered workflow is GitHub's automatic dependency-graph parsing, there's no
.github/dependabot.yml, and the latest commit onmainhas zero check-runs. The repo's own test suite (fast unit tests, plus the notebook/example suite gated behind--runall) has only ever been run by hand.Two workflows, kept deliberately separate:
ci.yml— runspytest(the fast subset; slow-marked notebook/example tests are skipped by default pertests/conftest.py) on push/PR tomain, across the full declared Python 3.10–3.14 support matrix.weekly-notebooks.yml— runspytest --runall(every chapter notebook +RVC3/examplesscript) on a schedule instead of gating every push. Real matplotlib rendering across 16+ notebooks is too slow to block normal development on. Kept as a separate workflow (not folded intoci.yml) so a slow-suite failure doesn't block merges or flip the main CI badge — it's meant to be a weekly signal to notice, not a merge gate. Scheduled for19:13 UTCFriday, with real margin before the Saturday-morning (Brisbane) ecosystem-scan routines at 22:45/23:00 UTC Friday, in case either reads per-repo CI status. Also uploads the per-notebook report (tests/reports/latest.md, already written bytest_notebooks.py) as a build artifact.Both installs are plain
pip install -e ".[dev]"from a clean runner, so tests run against whatever's on PyPI forroboticstoolbox-python/machinevision-toolbox-python/bdsim— matching this repo's own rule that the ultimate regression test is against shipped sibling releases, not dev branches.Test plan
pip show/API-confirmed no branch protection currently requires status checks, so this can't accidentally block existing merge flowworkflow_dispatchof the weekly job) — will confirm timing/duration once it's actually run once🤖 Generated with Claude Code