Haskell
Haskell CI op GitHub Actions
GHC compileert de volledige afhankelijkheidsboom opnieuw bij elke CI-run.
35m → 9m
Koude bouw
35m → 2m
Warme bouw
GHC compileert de volledige afhankelijkheidsboom opnieuw bij elke CI-run.
Waarom het gebeurt
De Cabal- of Stack-winkel blijft niet bestaan, en de hercompilatiecontrole van GHC kan niet helpen op een nieuwe machine.
Wat te veranderen
- Cache ~/.cabal/store of ~/.stack ingetoetst op het bevriezings- of oplosserbestand
- Cache ook dist-newstyle of .stack-work voor incrementeel hergebruik
- Zet de GHC-versie expliciet vast: een bump maakt alles ongeldig
- Gebruik een runner van 16 vCPU en -j om over pakketten heen te parallelliseren
Haskell op runnerhut
yaml
jobs: build: runs-on: runnerhut-16vcpu-ubuntu-2404 steps: - uses: actions/checkout@v4 - uses: haskell-actions/setup@v2 with: { ghc-version: '9.8' } - run: cabal build all -jDe enige runnerhut-specifieke regel is `runs-on: runnerhut-16vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.