name: Haskell CI on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: ghc: ['8.10.6', '8.8.4', '8.6.5'] os: [ubuntu-latest, macOS-latest, windows-latest] steps: - uses: actions/checkout@v2 - uses: haskell/actions/setup@v1 with: ghc-version: ${{ matrix.ghc }} cabal-version: '3.6.2.0' - 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 -vnormal+nowrap all - name: Build run: cabal build --enable-tests --enable-benchmarks -j1 -vnormal+nowrap all - name: Run tests run: cabal test -j1 -vnormal+nowrap all