summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: 905f39d4104b90c1e57ce98c527648255ba6cfee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
name: build
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ghc: ['8.6', '8.8', '8.10']
        cabal: ['3.0', '3.2']
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-haskell@v1
      with:
        ghc-version: ${{ matrix.ghc }}
        cabal-version: ${{ matrix.cabal }}
    - name: Cache
      uses: actions/cache@v1
      env:
        cache-name: cache-cabal
      with:
        path: ~/.cabal
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-
    - name: Install dependencies
      run: |
        cabal update
        cabal build --only-dependencies --enable-tests --enable-benchmarks
    - name: Build
      run: cabal build --enable-tests --enable-benchmarks all
    - name: Run tests
      run: cabal test all
    - name: Build documentation
      run: cabal run pesto-doc
    - uses: actions/upload-artifact@v2
      with:
        name: documentation
        path: _build/