Naar inhoud springen

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

  1. Schakel over naar uv: resolutie en installatie zijn doorgaans 10–30× sneller dan pip
  2. Cache de virtualenv ingetoetst op het lockfile, niet alleen de pip HTTP-cache
  3. Voer pytest -n auto uit met pytest-xdist om elke core op de runner te gebruiken
  4. 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 loadgroup
Een werkend uitgangspunt

De 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.