Django
Django CI auf GitHub Actions
Tests warten auf einen Datenbankcontainer und werden auf einem einzelnen Kern ausgeführt.
16m → 3m
Testsuite
70er → 0er
Migrationen
Tests warten auf einen Datenbankcontainer und werden auf einem einzelnen Kern ausgeführt.
Warum es passiert
Ein Service-Container startet bei jedem Lauf kalt und Djangos Test-Runner ist standardmäßig seriell.
Was zu ändern ist
- Führen Sie Tests mit --parallel auto durch, um jeden Kern zu verzweigen
- Verwenden Sie --keepdb, damit Migrationen nicht bei jeder Ausführung erneut abgespielt werden
- Cachen Sie die virtuelle Umgebung und verwenden Sie UV für die Installation
- Starten Sie Postgres als Dienstcontainer mit einem tmpfs-Datenverzeichnis
Django 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
Next.jsBeim nächsten Build wird jede Seite neu kompiliert, auch wenn sich eine Komponente geändert hat.Eckigng build und ng test starten beide bei jedem Lauf mit einem kalten Cache.VueVite erstellt das Abhängigkeits-Vorpaket bei jedem CI-Lauf neu.SchlankSvelteKit-Builds und Playwright-Tests laufen bei jedem Push ab.