Clojure
Clojure CI auf GitHub Actions
Der JVM-Start und die Auflösung von Abhängigkeiten kosten mehr als die Tests.
80er → 3er
Abhängigkeitsauflösung
Der JVM-Start und die Auflösung von Abhängigkeiten kosten mehr als die Tests.
Warum es passiert
~/.m2 und ~/.gitlibs sind kalt und jeder clj-Aufruf zahlt den vollständigen JVM-Start.
Was zu ändern ist
- Cache ~/.m2/repository und ~/.gitlibs verschlüsselt auf deps.edn
- Führen Sie alle Test-Namespaces in einer JVM aus und nicht nur eine pro Namespace
- Führen Sie eine Vorkompilierung mit clj -T:build durch, um wiederholte AOT-Arbeiten zu vermeiden
Clojure auf runnerhut
Die einzige runnerhut-spezifische Zeile ist „runs-on: runnerhut-4vcpu-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.