name: MacOS, Ubuntu, Windows on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: ghc: ['9.8.1', '9.6.3', '9.4.7'] os: [ubuntu-latest, macOS-latest, windows-latest] steps: - uses: actions/checkout@v3 - uses: haskell-actions/setup@v2 id: setup with: ghc-version: ${{ matrix.ghc }} # cabal-version: '3.8.1.0' cabal-update: true - name: Cache uses: actions/cache@v3 env: cache-name: haskell.yml with: path: ${{ steps.setup.outputs.cabal-store }} key: ${{ runner.os }}-${{ env.cache-name }}-ghc-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal', '**/cabal.project') }} restore-keys: ${{ runner.os }}-${{ env.cache-name }}-ghc-${{ matrix.ghc }}- - name: Install dependencies run: | 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