name: CI # Trigger the workflow on push or pull request, but only for the master branch on: pull_request: push: branches: ["ghc-8.10"] jobs: cabal: name: ${{ matrix.os }} / ghc ${{ matrix.ghc }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] cabal: ["3.2"] ghc: - "8.10.1" - "8.10.2" steps: - uses: actions/checkout@v2 if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/ghc-8.10' - uses: actions/setup-haskell@v1.1.4 id: setup-haskell-cabal name: Setup Haskell with: ghc-version: ${{ matrix.ghc }} cabal-version: ${{ matrix.cabal }} - name: Freeze run: | cabal freeze - uses: actions/cache@v1 name: Cache ~/.cabal/store with: path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }} key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} - name: Build run: | cabal configure --enable-tests --enable-benchmarks --test-show-details=direct cabal build all - name: Test run: | cabal test all