@@ -0,0 +1,95 @@
3+# Trigger the workflow on push or pull request, but only for the main branch
11+ name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
12+ runs-on: ${{ matrix.os }}
15+ os: [ubuntu-latest, macOS-latest]
25+ # - os: windows-latest
27+ # - os: windows-latest
31+ - uses: actions/checkout@v2
33+ - uses: actions/setup-haskell@v1.1.4
34+ id: setup-haskell-cabal
37+ ghc-version: ${{ matrix.ghc }}
38+ cabal-version: ${{ matrix.cabal }}
42+ cabal configure --enable-tests --enable-benchmarks --test-show-details=direct
48+ - uses: actions/cache@v2.1.3
49+ name: Cache ~/.cabal/store
51+ path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
52+ key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}
63+ name: stack / ghc ${{ matrix.ghc }}
64+ runs-on: ubuntu-latest
71+ - uses: actions/checkout@v2
73+ - uses: actions/setup-haskell@v1.1.4
74+ name: Setup Haskell Stack
76+ ghc-version: ${{ matrix.ghc }}
77+ stack-version: ${{ matrix.stack }}
79+ - uses: actions/cache@v2.1.3
83+ key: ${{ runner.os }}-${{ matrix.ghc }}-stack
85+ - name: Install dependencies
87+ stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --only-dependencies
91+ stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
95+ stack test --system-ghc