Repository navigation
ci(coverage): use the sysmon tracing core to speed up the coverage job - #919
ddivyanshsharmaa wants to merge 2 commits into
Conversation
On Python 3.12 the sysmon core counted exactly the same lines as the default core (13958 of 16208, 86.118%) and cut the test time from 721 s to 521 s on one run and from 1486 s to 483 s on another, on ubuntu-latest. Refs petercorke#898
Up to standards ✅🟢 Issues
|
|
Thank you for your interest in RTB, and for measuring this so carefully. The checks have now run and the coverage job took about 10 minutes here, against 20 to 25 on recent Before I merge: did an AI assistant help with the change? The PR template asks, and a sentence is enough. |
|
Yes, I used an AI assistant (Claude Code) to help run the timing experiments and draft the change and PR text. I reviewed the results and the diff myself before opening it, and the measurements are from real GitHub runners, so I'm happy to rerun or explain any of them. |
Refs #898.
What changes
Sets
COVERAGE_CORE: sysmonfor the "Run coverage" step inci.yml. Python 3.12'ssys.monitoringtracing core is lighter than the default core. Nothing else is touched, and branch coverage is not enabled inpyproject.toml, so the core's lack of branch support does not matter here.Measurements
Full suite (2,402 tests, all passing) on
ubuntu-latest, Python 3.12, run twice per variant:COVERAGE_CORE=sysmonThe covered line count is identical, so the Codecov number does not change. The runners varied by about 2x between runs, so the saving was roughly 30% to 65%; the second run's baseline matches the 25 minutes in the issue.
Not changed
slowtests still run in this job. In the same experiment they added only 26 uniquely covered lines (0.16 points), but they run nowhere else in CI, so removing them from here would drop them entirely. That is your call.pytest-xdiston top of sysmon made little difference in the second run (471 s against 483 s), so I left it out.