name: CI # Trigger the workflow on push or pull request, but only for the master branch on: pull_request: push: branches: [master] jobs: build: name: ghc ${{ matrix.ghc }} runs-on: ubuntu-16.04 strategy: matrix: cabal: ["2.4"] ghc: - "8.4.4" - "8.6.5" - "8.8.3" steps: - uses: actions/checkout@v2 if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master' - uses: actions/setup-haskell@v1 name: Setup Haskell with: ghc-version: ${{ matrix.ghc }} cabal-version: ${{ matrix.cabal }} - uses: actions/cache@v1 name: Cache ~/.cabal/store with: path: ~/.cabal/store key: ${{ runner.os }}-${{ matrix.ghc }}-cabal - name: Build run: | cabal v2-update cabal v2-build --enable-tests --enable-benchmarks - name: Test run: | cabal v2-test --enable-tests