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