name: CI # Trigger the workflow on push or pull request, but only for the master branch on: pull_request: push: branches: ["ghc-9.2"] jobs: cabal: name: ${{ matrix.os }} / ghc ${{ matrix.ghc }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] cabal: ["3.6"] ghc: - "9.2.2" steps: - uses: actions/checkout@v3 - uses: haskell/actions/setup@v2 id: setup-haskell-cabal name: Setup Haskell with: ghc-version: ${{ matrix.ghc }} cabal-version: ${{ matrix.cabal }} # GitHub preinstalls recent GHC versions, and haskell/actions/setup uses the # preinstalled version when possible. However, GitHub's preinstalled GHC does # not include documentation, and we need documentation to run Haddock tests. # Therefore, we reinstall GHC to ensure that we have the documentation we # need. - name: Reinstall GHC with docs run: | if [[ ! -e ~/.ghcup/ghc/${{ matrix.ghc }}/share/doc ]]; then ghcup install ghc --force ${{ matrix.ghc }} --set fi - name: Setup run: | cabal configure --with-compiler ghc-${{ matrix.ghc }} --enable-tests --enable-benchmarks --test-show-details=direct cabal freeze - uses: actions/cache@v2 name: Cache ~/.cabal/store with: path: | ${{ steps.setup-haskell-cabal.outputs.cabal-store }} dist-newstyle key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} restore-keys: | ${{ runner.os }}-cabal-${{ matrix.ghc }} - name: Build run: | cabal build all - name: Test run: cabal test all