Geh
Gehen Sie auf CI zu GitHub Actions
Go-Builds sind lokal schnell und in CI unerklärlicherweise langsam.
8m → 2m
Testsuite
3× schneller
Rassendetektor
97 %
Cache-Trefferquote
Go-Builds sind lokal schnell und in CI unerklärlicherweise langsam.
Warum es passiert
Der Go-Build-Cache befindet sich in ~/.cache/go-build und ist bei jedem neuen Läufer leer, sodass jedes Paket von Grund auf neu kompiliert wird.
Was zu ändern ist
- Cache ~/.cache/go-build und ~/go/pkg/mod mit Schlüssel auf go.sum
- Führen Sie go build ./... vor go test aus, damit der Build-Cache einmal gefüllt wird
- Verwenden Sie -count=1 bewusst – es deaktiviert den Testergebnis-Cache, also verwenden Sie es nur, wenn Sie es ernst meinen
- Teilen Sie große Testsuiten mit -run und einer Matrix, anstatt eine größere Maschine zu kaufen
Geh 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.PythonDie Pip-Installation dauert nur wenige Minuten und Pytest läuft auf einem einzelnen Kern.Node.jsnpm ci schreibt bei jedem Lauf Zehntausende kleiner Dateien.JavaBei jedem Build werden dieselben Maven- oder Gradle-Abhängigkeiten erneut heruntergeladen.