-
Notifications
You must be signed in to change notification settings - Fork 1
65 lines (54 loc) · 2.16 KB
/
presubmit-cabal.yaml
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
name: Haskell Cabal
on:
push:
branches: [master]
pull_request:
branches: [master]
types: [opened, synchronize]
permissions: {}
jobs:
test:
name: CI
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false # don't cancel other jobs if one fails
matrix:
# We use `macos-13` instead of `macos-latest` due to a bug in
# `haskell-actions/setup`.
# See https://github.com/haskell-actions/setup/issues/77.
os: [ubuntu-latest, macos-13, windows-latest]
ghc: [8.10.7, 9.0.2, 9.2.8, 9.4.8, 9.6.4, 9.8.1]
steps:
- name: Checkout code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
persist-credentials: false
- name: Setup Haskell Compiler (cabal)
id: setup-haskell
uses: haskell-actions/setup@c9f45a3b95314ad5e889bd19d5c5a3fa8c6e24d4 # v2.7.4
with:
ghc-version: ${{ matrix.ghc }}
- name: Cache dist-newstyle
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: dist-newstyle
key: dist-newstyle-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('simple-echo-example/*') }}
restore-keys: |
dist-newstyle-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal') }}-
dist-newstyle-${{ matrix.os }}-${{ matrix.ghc }}-
- name: Cache ~/.cabal/store
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ${{ steps.setup-haskell.outputs.cabal-store }}
key: cabal-store-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal') }}
restore-keys: cabal-store-${{ matrix.os }}-${{ matrix.ghc }}-
- name: Configure to run tests and benchmarks
run: cabal configure --enable-tests --enable-benchmarks
- name: Build code
run: cabal build
- name: Test code
run: cabal test || true # TODO(mihaimaruseac): Fix this
- name: Benchmark code
run: cabal bench || true # TODO(mihaimaruseac): Fix this
- name: Generate documentation
run: cabal haddock all