Python
Python CI auf GitHub Actions
Die Pip-Installation dauert nur wenige Minuten und Pytest läuft auf einem einzelnen Kern.
180er → 12er
Installieren
14m → 3m
Testsuite
1 → 8
Verwendete Kerne
Die Pip-Installation dauert nur wenige Minuten und Pytest läuft auf einem einzelnen Kern.
Warum es passiert
Räder werden bei jedem Lauf aufgelöst und häufig kompiliert, und Pytest ist seriell, sofern Sie nichts anderes angeben.
Was zu ändern ist
- Wechseln Sie zu UV – Auflösung und Installation sind normalerweise 10–30-mal schneller als PIP
- Cachen Sie die in der Sperrdatei verschlüsselte virtuelle Umgebung, nicht nur den Pip-HTTP-Cache
- Führen Sie pytest -n auto mit pytest-xdist aus, um jeden Kern auf dem Runner zu nutzen
- Teilen Sie langsame Integrationstests in ihren eigenen Job auf, damit das Unit-Feedback schnell bleibt
Python auf runnerhut
Die einzige runnerhut-spezifische Zeile ist „runs-on: runnerhut-8vcpu-ubuntu-2404“. Alles andere sind Standard-GitHub Actions – dieselben Aktionen, dieselben Geheimnisse und dasselbe Berechtigungsmodell, das Sie heute verwenden.
Ihr nächster Build könnte doppelt so schnell sein — zum halben Preis
Kostenlos starten. Der Wechsel zurück ist dieselbe eine Zeile — auch dieses Diff veröffentlichen wir.
Verwandt
RustCargo erstellt bei fast jedem CI-Lauf das gesamte Abhängigkeitsdiagramm neu.GehGo-Builds sind lokal schnell und in CI unerklärlicherweise langsam.Node.jsnpm ci schreibt bei jedem Lauf Zehntausende kleiner Dateien.JavaBei jedem Build werden dieselben Maven- oder Gradle-Abhängigkeiten erneut heruntergeladen.