ci: lock the reflex 0.8.23 playground job and run examples only when they can change
Merged
FA
1d ago+611+611+012345678901234567890123456789-18-18-01234567890123456789
Follow-up to #7560 (merged), addressing the review there:
we should have a uv.lock file for the legacy tests so we don't hit these issues going forward. Also, do we need to be running these benchmarks on every PR? Nothing other than reflex-bench or playground changes should affect the legacy results.
Type of change
- Bug fix (non-breaking change which fixes an issue)
Changes
All changes are in examples.yml, plus the new lock folder:
- Lockfile.
.github/legacy/reflex-0.8.23/is a non-package uv project (reflex==0.8.23,plotly>=6.0,<7.0,greenlet) with its ownuv.lock.playground-0.8.23now runsuv sync --locked --project .github/legacy/reflex-0.8.23and puts that venv first onPATH, instead ofuv pip installwith unpinned transitive dependencies. Thegreenletthat #7560 added is part of the locked environment. - Triggers. The workflow's
pull_request/pushpath filters dropreflex/**,packages/**,pyproject.toml,uv.lockand.github/actions/setup_build_env/**. Both example jobs (playground-headandplayground-0.8.23) now run only when one of these changes:examples/**,packages/reflex-bench/**,scripts/hash_examples.py,.github/legacy/reflex-0.8.23/**or the workflow file itself. The workflow is already inADVISORYand not in the ruleset, so the filter can't block a merge.
Testing
- Ran
uv sync --locked --project .github/legacy/reflex-0.8.23locally (it resolved SQLAlchemy 2.1.4, sqlmodel 0.0.48 and greenlet 3.5.6). From that venv,reflex --versioninexamples/playgroundprints0.8.23andreflex compilesucceeds (97/97 pages). uv run pytest tests/units/test_workflow_gates.py: 70 passed.- Pre-commit is clean on the changed files.