name: Haskell CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest strategy: matrix: cabal: ["3.4.1.0"] ghc: ["8.6", "8.8", "8.10", "9.0"] steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - uses: haskell/actions/setup@v1 with: ghc-version: ${{ matrix.ghc }} cabal-version: ${{ matrix.cabal }} - name: Cache uses: actions/cache@v1 env: cache-name: cache-cabal with: path: ~/.cabal key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install dependencies run: | cabal update cabal build --only-dependencies --enable-tests --enable-benchmarks - name: Build run: cabal v2-build --enable-tests all - name: Run hspec tests run: cabal v2-test spec --test-option=--color --test-show-details=streaming