Haskell
GitHub Actions hakkında Haskell CI
GHC, her CI çalıştırmasında bağımlılık ağacının tamamını yeniden derler.
35 dk → 9 dk
Soğuk yapı
35 dk → 2 dk
Sıcak yapı
GHC, her CI çalıştırmasında bağımlılık ağacının tamamını yeniden derler.
Neden oluyor?
Cabal veya Stack deposu kalıcı değildir ve GHC'nin yeniden derleme denetleyicisi yeni bir makinede yardımcı olamaz.
Ne değiştirilmeli
- Dondurma veya çözümleyici dosyasında ~/.cabal/store veya ~/.stack anahtarını önbelleğe alın
- Ayrıca artan yeniden kullanım için dist-newstyle veya .stack-work'ü önbelleğe alın
- GHC sürümünü açıkça sabitleyin; bir çarpma her şeyi geçersiz kılar
- Paketler arasında paralelleştirme yapmak için 16 vCPU çalıştırıcısı ve -j kullanın
Koşucu kulübesinde Haskell (koşucu kulübesi) (runnerhut)
runnerhut'a (runnerhut) özgü tek satır 'runs-on: runnerhut-16vcpu-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.