Scala
Scala CI auf GitHub Actions
sbt benötigt mehr Zeit für das Starten und Auflösen als für das Kompilieren.
90er → 8er
SBT-Startup
11m → 3m
Kompilieren
sbt benötigt mehr Zeit für das Starten und Auflösen als für das Kompilieren.
Warum es passiert
sbt startet eine JVM, löst Coursier-Abhängigkeiten auf und lädt die Build-Definition, bevor eine einzelne Datei kompiliert wird.
Was zu ändern ist
- Cache ~/.cache/coursier, ~/.sbt und die target/-Verzeichnisse
- Verwenden Sie sbt --client oder führen Sie alle Aufgaben in einem einzigen sbt-Aufruf aus
- Aktivieren Sie den inkrementellen Compiler-Cache von Zinc über alle Ausführungen hinweg
- Geben Sie der JVM 8 GB oder mehr – die Scala-Kompilierung ist speicherhungrig
Scala 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.