@@ -0,0 +1,38 @@
1+name: Haskell CI
2+
3+on: [push, pull_request]
4+
5+jobs:
6+ build:
7+
8+ runs-on: ubuntu-latest
9+ strategy:
10+ matrix:
11+ ghc: [ '8.6.5', '8.8.4', '8.10.2' ]
12+ steps:
13+ - uses: actions/checkout@v2
14+ - uses: actions/setup-haskell@v1
15+ with:
16+ ghc-version: ${{ matrix.ghc }}
17+ cabal-version: '3.0'
18+
19+ - name: cabal Cache
20+ uses: actions/cache@v1
21+ env:
22+ cache-name: cache-cabal
23+ with:
24+ path: ~/.cabal
25+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
26+ restore-keys: |
27+ ${{ runner.os }}-build-${{ env.cache-name }}-
28+ ${{ runner.os }}-build-
29+ ${{ runner.os }}-
30+
31+ - name: Install dependencies
32+ run: |
33+ cabal update
34+ cabal build --only-dependencies --enable-tests --enable-benchmarks all
35+ - name: Build
36+ run: cabal build --enable-tests --enable-benchmarks all
37+ - name: Run tests
38+ run: cabal test all