name: github-action on: [push, pull_request] jobs: build: strategy: matrix: ghc: ['8.0.2', '8.2.2', '8.4.4', '8.6.5', '8.8.4', '8.10.2'] os: ['ubuntu-latest', 'macos-latest'] exclude: # There are some linker warnings in 802 on darwin that # cause compilation to fail # See https://github.com/NixOS/nixpkgs/issues/25139 - ghc: '8.0.2' os: 'macos-latest' runs-on: ${{ matrix.os }} name: GHC ${{ matrix.ghc }} on ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions/setup-haskell@v1 with: ghc-version: ${{ matrix.ghc }} - name: Cache uses: actions/cache@v1 env: cache-name: cache-cabal with: path: ~/.cabal key: ${{ runner.os }}-${{ matrix.ghc }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }} restore-keys: | ${{ runner.os }}-${{ matrix.ghc }}-build-${{ env.cache-name }}- ${{ runner.os }}-${{ matrix.ghc }}-build- ${{ runner.os }}-${{ matrix.ghc }}- ${{ runner.os }} - name: Install dependencies run: | cabal update cabal build --only-dependencies --enable-tests --enable-benchmarks - name: Build run: cabal build --enable-tests --enable-benchmarks all - name: Run tests run: cabal test --enable-tests all - name: Build Docs run: cabal haddock