@@ -140,6 +140,12 @@ jobs:
142 runs-on: macOS-10.15
142 runs-on: macOS-10.15
145 - uses: actions/checkout@v1
151 - uses: actions/checkout@v1
@@ -147,32 +153,43 @@ jobs:
147 - name: Install recent cabal/ghc
153 - name: Install recent cabal/ghc
148 uses: actions/setup-haskell@v1.1
154 uses: actions/setup-haskell@v1.1
150− ghc-version: '8.6.5'
156+ ghc-version: '8.10.1'
151− enable-stack: true
157+ cabal-version: '3.2'
152− stack-version: 'latest'
158+
159+ - name: Install recent cabal/ghc
160+ uses: actions/setup-haskell@v1.1
162+ ghc-version: ${{ matrix.versions.ghc }}
163+ cabal-version: ${{ matrix.versions.cabal }}
154 # declare/restore cached things
165 # declare/restore cached things
155− # caching doesn't work for scheduled runs yet https://github.com/actions/cache/issues/63
166+ # caching doesn't work for scheduled runs yet
167+ # https://github.com/actions/cache/issues/63
157− - name: Cache stack global package db
169+ - name: Cache cabal global package db
158− id: stack-global
170+ id: cabal-global
159 uses: actions/cache@v2
171 uses: actions/cache@v2
162− ~/.stack
174+ ~/.cabal
163− key: ${{ runner.os }}-stack-global-${{ hashFiles('stack.yaml') }}
175+ key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }}
165− # stack's local package db
166− # - name: Cache .stack-work
177+ - name: Cache cabal work
167− # uses: actions/cache@v1
179+ uses: actions/cache@v2
169− # path: .stack-work
181+ path: |
170− # key: ${{ runner.os }}-stack-work
182+ dist-newstyle
183+ key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local
172 - name: Install dependencies
185 - name: Install dependencies
174− stack update
187+ cabal v2-update
175− stack test --dependencies-only --fast
188+ cabal v2-build --dependencies-only --enable-tests --disable-optimization
176 - name: Build and test
189 - name: Build and test
178− stack test --fast --test-arguments=--hide-successes
191+ cabal v2-build --enable-tests --disable-optimization 2>&1 | tee build.log
192+ # fail if warnings in local build
193+ ! grep -q ": *[Ww]arning:" build.log || exit 1
194+ cabal v2-test --disable-optimization