name: Haskell CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: ghc: ['8.6.5', '8.8.3'] cabal: ['2.4', '3.0', '3.2'] os: [ubuntu-latest, macOS-latest, windows-latest] exclude: # GHC 8.8+ only works with cabal v3+ - ghc: 8.8.3 cabal: 2.4 # Appears to be buggy to build in windows - ghc: 8.8.3 os: windows-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-haskell@v1.1 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 v2-update cabal v2-build --only-dependencies --enable-tests --enable-benchmarks --verbose=2 - name: Build run: cabal v2-build --enable-tests --enable-benchmarks all - name: Run tests run: cabal v2-test all