C++
GitHub Actions üzerinde C++ CI
İlgili hiçbir şey değişmese bile her çeviri birimi yeniden derlenir.
28 dk → 6 dk
Tam yapı
28 dk → 90s
Artımlı
%88
ccache vuruşu
İlgili hiçbir şey değişmese bile her çeviri birimi yeniden derlenir.
Neden oluyor?
Hiçbir derleyici önbelleği yapılandırılmadığından ccache veya sccache aynı derlemelere kısa devre yaptıramaz.
Ne değiştirilmeli
- Ccache veya sccache ekleyin ve çalıştırmalar arasında önbellek dizinini sürdürün
- Yapmak yerine ninja kullanın; bağımlılık grafiği daha hızlı ve daha paraleldir
- Bildiride anahtarlanan vcpkg veya Conan paket dizinlerini önbelleğe alın
- 32 vCPU çalıştırıcısı üzerine inşa edin; C++ derlemesi neredeyse mükemmel şekilde paralelleşiyor
runnerhut'ta C++ (runnerhut)
runnerhut'a (runnerhut) özgü tek satır 'runs-on: runnerhut-32vcpu-ubuntu-2404'tür. Geriye kalan her şey standart GitHub Actions'tir; bugün kullandığınız aynı eylemler, aynı sırlar ve aynı izin modeli.
Bir sonraki build'iniz yarı fiyata iki kat hızlı olabilir
Ücretsiz başlayın. Ayrılmak da aynı tek satır ve o diff'i de yayımlıyoruz.
İlgili
RustCargo neredeyse her CI çalıştırmasında bağımlılık grafiğinin tamamını yeniden oluşturur.GitGo derlemeleri yerel olarak hızlıdır ve CI'da açıklanamayacak kadar yavaştır.Pythonpip kurulumu dakikalar alır ve pytest tek bir çekirdek üzerinde çalışır.Node.jsnpm ci her çalıştırmada onbinlerce küçük dosya yazar.