Nix
Nix CI auf GitHub Actions
Jeder Nix-Build beginnt mit einem leeren Speicher und baut die Welt neu auf.
26m → 5m
Kaltbau
26m → 40s
Warmer Körperbau
Jeder Nix-Build beginnt mit einem leeren Speicher und baut die Welt neu auf.
Warum es passiert
/nix/store wird nicht beibehalten und über den Standardwert hinaus ist kein Binärcache konfiguriert.
Was zu ändern ist
- Verwenden Sie einen Binärcache wie Cachix, damit Ableitungen abgerufen und nicht neu erstellt werden
- Zwischenspeichern von /nix/store zwischen Läufen, sofern der Läufer dies zulässt
- Pin nixpkgs mit einer Flake-Sperre, damit der Cache tatsächlich erreicht wird
Nix 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
BazelDer gesamte Wert von Bazel liegt im Caching, und CI wirft den Cache bei jedem Lauf weg.GradleDie Konfigurationsphase dauert 40 Sekunden, bevor etwas kompiliert wird.MavenMaven lädt bei jedem Lauf das Internet herunter.NxNx erstellt jedes Projekt neu, da es nicht erkennen kann, was sich geändert hat.