Zum Inhalt springen

Rust

GitHub Actions CI auf Rust

Cargo erstellt bei fast jedem CI-Lauf das gesamte Abhängigkeitsdiagramm neu.

12m → 4m
Kaltbau
12m → 45s
Warmer Körperbau
94 %
Cache-Trefferquote

Cargo erstellt bei fast jedem CI-Lauf das gesamte Abhängigkeitsdiagramm neu.

Warum es passiert

target/ wird nicht zwischengespeichert, oder der Cache-Schlüssel ändert sich, wenn sich eine Quelldatei ändert, sodass der inkrementelle Status bei jedem Lauf verworfen wird.

Was zu ändern ist

  1. Cache ~/.cargo/registry, ~/.cargo/git und target/ sind auf Cargo.lock und nicht auf Quelldateien verschlüsselt
  2. Verwenden Sie Sccache, damit sogar ein kaltes Ziel kompilierte Artefakte branchenübergreifend wiederverwendet
  3. Teilen Sie Cargo Check, Cargo Clippy und Cargo Test in parallele Jobs auf, die sich einen Cache teilen
  4. Erstellen Sie Release-Artefakte auf einem 16-vCPU-Läufer – Rustc skaliert nahezu linear mit Codegen-Einheiten

Rust auf runnerhut

Die einzige runnerhut-spezifische Zeile ist „runs-on: runnerhut-16vcpu-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.