Elixier
Elixir CI auf GitHub Actions
Mix deps.get und Compilation beginnen beide bei jedem Lauf bei null.
4m → 30s
Kompilieren
9m → 3m
Volle Pipeline
Mix deps.get und Compilation beginnen beide bei jedem Lauf bei null.
Warum es passiert
deps/ und _build/ werden nicht zwischengespeichert, sodass jede Abhängigkeit neu kompiliert wird, auch wenn sich keine geändert hat.
Was zu ändern ist
- Cache deps/ und _build/ verschlüsselt auf mix.lock und den OTP/Elixir-Versionen
- Einmal mit MIX_ENV=test kompilieren und sowohl für Credo als auch für Tests wiederverwenden
- Führen Sie „--warnings-as-errors“ in einem separaten Schnelljob aus, damit dieser frühzeitig fehlschlägt
- Verwenden Sie die integrierten asynchronen Tests von ExUnit – die meisten Suiten lassen sie versehentlich weg
Elixier 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.