Monorepo
Monorepo CI auf GitHub Actions
Einzeilige Änderungen lösen einen vollständigen Repository-Build aus.
120 → 5
Pakete erstellt
45m → 6m
Pipeline
Einzeilige Änderungen lösen einen vollständigen Repository-Build aus.
Warum es passiert
Es gibt keine Erkennung betroffener Ziele, daher behandelt CI jeden Push als eine Änderung von allem.
Was zu ändern ist
- Übernehmen Sie die betroffene Erkennung – nx-betroffen, turbo-filter, bazel query oder pants--changed-since
- Verwenden Sie Pfadfilter, damit nicht verwandte Arbeitsabläufe überhaupt nicht ausgelöst werden
- Teilen Sie einen Warm-Cache für jedes Paket, anstatt pro Paket zwischenzuspeichern
- Führen Sie das Aufgabendiagramm auf einem einzigen großen Läufer aus, statt auf vielen kleinen
Monorepo auf runnerhut
Die einzige runnerhut-spezifische Zeile ist „runs-on: runnerhut-32vcpu-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.