Rubin
Ruby CI auf GitHub Actions
Bei der Bundle-Installation werden bei jedem Durchlauf native Gems aus dem Quellcode kompiliert.
140s → 6s
Bundle-Installation
18m → 4m
RSpec
Bei der Bundle-Installation werden bei jedem Durchlauf native Gems aus dem Quellcode kompiliert.
Warum es passiert
Gems wie nokogiri, pg und grpc erstellen C-Erweiterungen, was Minuten kostet, es sei denn, die erstellten Gems werden zwischengespeichert.
Was zu ändern ist
- Der Cache-Anbieter/das Cache-Bundle ist auf Gemfile.lock festgelegt, sodass native Erweiterungen einmal erstellt werden
- Legen Sie die Bundle-Konfigurationsbereitstellung für reproduzierbare, sperrdateigenaue Installationen auf „true“ fest
- Führen Sie RSpec parallel mit parallel_tests auf allen verfügbaren Kernen aus
- Verwenden Sie einen Snapshot-Runner, wenn die Installation immer noch dominiert – dadurch wird der Schritt vollständig entfernt
Ruby 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.