CI: drop the browser job, stop the CSS gate flaking, keep the chores off the runner, cut the install noise #38
No reviewers
Labels
No labels
architecture
cleanup
dependencies
enhancement
needs-info
needs-triage
performance
priority: high
priority: medium
ready-for-agent
ready-for-human
reliability
security
testing
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
solvreven/FPL!38
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/quiet-test-suite"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
CI on this repo has been red far more often than the code has been broken. Between 13 and 18 September, 14 of 23 browser runs failed. Almost none of those failures were about the change under test.
test_css_characterization(determinism proof and gate)0.354607vs0.354603)test_strengths_follow_results::…real_fit…(#31 only)data/pit/feat/captaincy-board)test_asset_version(tests job,main)test_header_narrow[400](#31 only)The test run also started the app's real chore scheduler on the runner. Every
with TestClient(app)entered the lifespan, which fetched the live FPL API and shelled out toscripts/…. On a clean checkout the[test]suite rewrote the trackeddata/current_2026_27/rounds.json/results.jsonwith GW1–4 and wrote adata/chores.jsonledger.Changes
testsjob still runs every non-browser test and skips the Playwright ones, as before. README says the browser suite runs locally only, and installs it from the declaredbrowserextra withconstraints.txtinstead of an unpinnedpip install playwright.evaluatethat reads them. This matters for local runs now. Transitions and finite animations are finished; infinite ones are paused at t=0. Nothing is disabled, soanimation-*/transition-*still compare and the first keyframe is still a stylesheet value. A new proof test drives a real.loading-blockand a 30s linear transition, and requires two snapshots 300ms apart to agree. With the settle removed it fails every time.69e2d02fromfeat/captaincy-board, the author's own fix with its guard test, unchanged, so that it doesn't wait for #31. It will merge cleanly when #31 lands.pip install -qstill prints the full error and backend traceback when it fails; I checked this with a brokenpyproject.python -m buildis captured to a file that the step prints only if it fails. I avoidedbuild -qbecause it hides the backend's own error.pip freezeis unchanged.slowis registered, and--strict-markersis on;slowis the only custom mark on any branch.No test is removed, skipped, retried, or loosened. The browser tests are unchanged and simply run locally instead of in CI.
Log size, green run
fpl_app-0.0.1-py3-none-any.whl,wheel imports the serving layer)Verification
testsjob 1 failed, 1235 passed, 83 skipped in 39.37s. No warnings summary and no pip output; the only failure wastest_asset_version, which is fixed by #28.tests/webwith the browser: 995 passed, 3 skipped, no warnings. The only failure was the same asset test, since that run was before #28.test_css_characterization.py: 6 passed, including the full 48-combination gate and the 77px mutation proof._SETTLEremoved, green with it.[test]suite on a clean checkout: no tracked file modified, nodata/chores.json. Before, the same run rewrote both data files.🤖 Generated with Claude Code
CI: stop the CSS gate flaking, keep the chores off the runner, cut the install noiseto CI: drop the browser job, stop the CSS gate flaking, keep the chores off the runner, cut the install noise