Python
Python CI op GitHub Actions
pip-installatie duurt minuten en pytest draait op één kern.
180s → 12s
Installeren
14m → 3m
Testsuite
1 → 8
Kernen gebruikt
pip-installatie duurt minuten en pytest draait op één kern.
Waarom het gebeurt
Raden worden opgelost en vaak bij elke run samengesteld, en pytest is serieel, tenzij je anders vertelt.
Wat te veranderen
- Schakel over naar uv: resolutie en installatie zijn doorgaans 10–30× sneller dan pip
- Cache de virtualenv ingetoetst op het lockfile, niet alleen de pip HTTP-cache
- Voer pytest -n auto uit met pytest-xdist om elke core op de runner te gebruiken
- Splits langzame integratietests op in hun eigen taak, zodat de feedback van de eenheden snel blijft
Python op runnerhut
yaml
jobs: test: runs-on: runnerhut-8vcpu-ubuntu-2404 steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v5 with: { enable-cache: true } - run: uv sync --frozen - run: uv run pytest -n auto --dist loadgroupDe enige runnerhut-specifieke regel is `runs-on: runnerhut-8vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.
Gerelateerd
RustCargo herbouwt de volledige afhankelijkheidsgrafiek bij vrijwel elke CI-run.GaGo-builds zijn lokaal snel en op onverklaarbare wijze langzaam in CI.Knooppunt.jsnpm ci schrijft bij elke run tienduizenden kleine bestanden.JavaBij elke build worden dezelfde Maven- of Gradle-afhankelijkheden opnieuw gedownload.