ci: split pytest suites and schedule environment smoke tests - #95
Conversation
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Renaming the single pytest check into pytest (fast)/(numba)/(full) changes merge-gating status checks and requires a human to update branch-protection settings to keep required checks enforced.
Review effort: Balanced
Findings: None
What changed in this PR
This PR restructures the tests.yml CI workflow to reduce day-to-day feedback latency while preserving Numba-runtime and full-environment coverage (closes #94). It introduces pytest markers to tier tests, splits PR/push runs into parallel fast and numba suites, and defers the expensive all-environment subprocess smoke test (test_all_demos) to a nightly/manual-dispatch full suite. Documentation in the workflow README explains the tiers, local commands, and guidance for future Numba environments.
Changes:
- Register
slow/numba/integrationmarkers inpyproject.tomland apply them (test_all_demos→slow+integration; wholetest_wbt_numba.pymodule →numba, two long tests →slow). - Replace the single CI job with an event-driven matrix:
fast/numbaon PR/push,fullon schedule/dispatch; add JUnit upload and--durations=20with--strict-markers. - Add a nightly cron, per-event concurrency group, per-suite Numba cache keys, and expanded README documentation.
| File | Description |
|---|---|
test/test_all_envs.py |
Marks the all-environment smoke test as slow+integration so it only runs in the full/nightly suite. |
pyproject.toml |
Registers the slow, numba, and integration pytest markers used for CI tiering. |
motrix_envs/tests/test_wbt_numba.py |
Module-level numba marker keeps WBT kernels in one suite; adds slow to the two expensive tests. |
.github/workflows/tests.yml |
Event-driven suite matrix, nightly schedule, per-suite caches, JUnit artifacts, and --strict-markers. |
.github/workflows/README.md |
Documents the new suite tiers, local commands, marker semantics, and future-Numba guidance. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
3749fdd to
665bc7c
Compare
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The CI/marker changes are low-risk, but the accompanying rewrites to core Numba kernel cloning, fingerprinting, and compilation-cache logic are subtle and correctness-critical, warranting final human review.
Review effort: Balanced
Findings: None
665bc7c to
1a1c588
Compare
Closes #94
Summary
fastandnumbasuites for PRs and pushes tomain/stableslow,numba, andintegrationpytest markersValidation
prek run --files .github/workflows/README.md .github/workflows/tests.yml pyproject.toml motrix_envs/tests/test_wbt_numba.py test/test_all_envs.pypytest --collect-only --strict-markersfor fast, Numba, and integration selectionsgit diff --checkThe full local
pytestcommand remains unchanged and continues to run all tests.