name: Haskell CI on: pull_request: branches: - dev - main push: branches: - main jobs: build: runs-on: docker container: image: haskell:9.10 # Official Haskell image with GHC 9.10 + Cabal preinstalled steps: - name: Checkout code uses: actions/checkout@v4 - name: Check versions run: | ghc --version cabal --version # Manual caching with volumes (act-friendly) - name: Cache Cabal store run: | mkdir -p ~/.cabal/packages ~/.cabal/store cabal update - name: Update Cabal package index run: cabal update - name: Configure project run: cabal configure --enable-tests --enable-benchmarks - name: Build dependencies run: cabal build --only-dependencies --enable-tests --enable-benchmarks - name: Build project run: cabal build --enable-tests --enable-benchmarks - name: Run tests run: cabal test --test-show-details=direct - name: Run documentation build run: cabal haddock