Python CI has the cheapest speedup in Actions: setup-python caches pip with one line (cache: 'pip'), yet plenty of workflows still reinstall requirements on every run. Here is how well-known Python projects actually run CI, gaps included. Read the fix →
| Repo | Runs (30d) | CI min (30d) | Recoverable min/mo | Failure rate | Findings |
|---|---|---|---|---|---|
| python/mypypip | 1,126 | 7,091* | 1,543 | 3% | 8 |
| sqlalchemy/sqlalchemypip | 161 | 10.7k | 974 | 13% | 11 |
| psf/blackpip | 1,527 | 7,743* | 473 | 9% | 27 |
| numpy/numpypip | 2,500 | 2,914* | 325 | 1% | 49 |
| pydantic/pydanticpip | 1,486 | 3,434* | 269 | 12% | 21 |
| fastapi/fastapipip | 1,975 | 640* | 58 | 8% | 23 |
| python-poetry/poetrynpm | 361 | 1,810 | 56 | 8% | 16 |
| huggingface/transformerspip | 2,500 | 1,739* | 28 | 7% | 33 |
| aio-libs/aiohttppip | 2,500 | 1,645* | 22 | 6% | 19 |
| psf/requestspip | 109 | 91 | 16 | 4% | 13 |
| scikit-learn/scikit-learnpip | 2,500 | 725* | 5 | 2% | 19 |
| scrapy/scrapypip | 2,305 | 13.0k* | 4 | 7% | 11 |
| pytest-dev/pytestpip | 537 | 18.7k* | 1 | 20% | 6 |
| pandas-dev/pandaspip | 2,500 | 5,844* | 0 | 3% | 28 |
| django/djangopip | 2,500 | 469* | 0 | 2% | 13 |
| pallets/flaskpip | 50 | 17 | 0 | 14% | 8 |
| encode/httpx | 1 | 1 | 0 | 100% | clean |
* CI min, recoverable min and failure rate cover only the latest 500 runs of a repo with more in 30 days.
Public data from each repo's GitHub Actions. Minutes are wall-clock workflow time over 30 days. These repos run Actions free (public repos always do). Each scorecard shows the private-repo dollar equivalent as a labeled estimate. Repo owners can remove their scorecard any time.
Scan any public repo free, in seconds. No install, no card.
Scan a repo