Skip to content

ci: add GitHub Actions workflows -- fast tests on push/PR, slow suite weekly - #52

Open
petercorke wants to merge 1 commit into
mainfrom
ci/add-github-actions-workflows
Open

petercorke wants to merge 1 commit into
mainfrom
ci/add-github-actions-workflows

Conversation

@petercorke

Copy link
Copy Markdown
Owner

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 on main has 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 — 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 to block normal development on. Kept as a separate workflow (not 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. Scheduled for 19:13 UTC Friday, 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.

Both installs are plain pip install -e ".[dev]" from a clean runner, so tests run against whatever's on PyPI for roboticstoolbox-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

  • Validated both workflow files parse as YAML
  • pip show/API-confirmed no branch protection currently requires status checks, so this can't accidentally block existing merge flow
  • First real run (push/PR trigger, and a manual workflow_dispatch of the weekly job) — will confirm timing/duration once it's actually run once

🤖 Generated with Claude Code

… 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>
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.

1 participant