C++
C++ CI auf GitHub Actions
Jede Übersetzungseinheit wird neu kompiliert, auch wenn sich nichts Relevantes geändert hat.
28m → 6m
Kompletter Aufbau
28m → 90er
Inkrementell
88 %
Ccache-Treffer
Jede Übersetzungseinheit wird neu kompiliert, auch wenn sich nichts Relevantes geändert hat.
Warum es passiert
Es ist kein Compiler-Cache konfiguriert, daher können Ccache oder Sccache identische Kompilierungen nicht kurzschließen.
Was zu ändern ist
- Fügen Sie Ccache oder Sccache hinzu und behalten Sie das Cache-Verzeichnis zwischen den Läufen bei
- Verwenden Sie Ninja statt Make – das Abhängigkeitsdiagramm ist schneller und paralleler
- Cachen Sie vcpkg- oder Conan-Paketverzeichnisse, die im Manifest angegeben sind
- Bauen Sie auf einem 32-vCPU-Runner auf. Die C++-Kompilierung erfolgt nahezu perfekt parallel
C++ 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
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.