Java
Java CI auf GitHub Actions
Bei jedem Build werden dieselben Maven- oder Gradle-Abhängigkeiten erneut heruntergeladen.
120s → 4s
Abhängigkeitsauflösung
9m → 90er
Inkrementeller Build
91 %
Cache-Trefferquote
Bei jedem Build werden dieselben Maven- oder Gradle-Abhängigkeiten erneut heruntergeladen.
Warum es passiert
~/.m2 und ~/.gradle sind auf einem neuen Läufer leer, und der JVM-Start plus Annotationsverarbeitung verursacht einen festen Overhead pro Modul.
Was zu ändern ist
- Cache ~/.m2/repository oder ~/.gradle/caches für die Build-Dateien
- Aktivieren Sie den Gradle-Konfigurationscache und den Build-Cache
- Halten Sie den Gradle-Daemon innerhalb eines Jobs am Leben, anstatt ihn pro Modul zu forken
- Geben Sie der JVM genügend Heap – GC-Thrash sieht genauso aus wie ein langsamer Build
Java 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.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.