git.iko.soy/typeable/pandoc
on master help sign in
275 lines 8.0 kB history raw
1name: CI tests
3on:
4 push:
5 branches:
6 - '*'
7 - '!rc/*'
8 paths-ignore:
9 - 'doc/**'
10 - 'MANUAL.txt'
11 - '*.md'
12 - 'RELEASE_CHECKLIST'
13 - 'BUGS'
14 - 'changelog'
15 - 'README.template'
16 - 'appveyor.yml'
17 - 'tools/**'
18 - 'linux/**'
19 - 'macos/**'
20 - 'windows/**'
21 - 'man/**'
22 pull_request:
23 paths-ignore:
24 - 'doc/**'
25 - 'MANUAL.txt'
26 - '*.md'
27 - 'RELEASE_CHECKLIST'
28 - 'BUGS'
29 - 'changelog'
30 - 'README.template'
31 - 'appveyor.yml'
32 - 'tools/**'
33 - 'linux/**'
34 - 'macos/**'
35 - 'windows/**'
36 - 'man/**'
38jobs:
39 linux:
41 runs-on: ubuntu-18.04
42 strategy:
43 fail-fast: true
44 matrix:
45 versions:
46 - ghc: '8.0.2'
47 cabal: '2.4'
48 prefix: 'v2-'
49 cabalopts: ''
50 testopts: ''
51 - ghc: '8.2.2'
52 cabal: '2.4'
53 prefix: 'v2-'
54 cabalopts: ''
55 testopts: ''
56 - ghc: '8.4.4'
57 cabal: '2.4'
58 prefix: 'v2-'
59 cabalopts: '-f-embed_data_files'
60 testopts: ''
61 - ghc: '8.6.5'
62 cabal: '3.2'
63 prefix: ''
64 cabalopts: ''
65 testopts: '--test-option=--hide-successes'
66 - ghc: '8.8.4'
67 cabal: '3.2'
68 prefix: ''
69 cabalopts: ''
70 testopts: '--test-option=--hide-successes'
71 - ghc: '8.10.4'
72 cabal: '3.2'
73 prefix: ''
74 cabalopts: '-ftrypandoc'
75 testopts: '--test-option=--hide-successes'
76 - ghc: '9.0.1'
77 cabal: '3.4'
78 prefix: ''
79 cabalopts: ''
80 testopts: '--test-option=--hide-successes'
81 steps:
82 - uses: actions/checkout@v2
84 # needed by memory
85 - name: Install numa
86 run: sudo apt-get install libnuma-dev
88 # need to install older cabal/ghc versions from ppa repository
90 - name: Install recent cabal/ghc
91 uses: haskell/actions/setup@v1
92 with:
93 ghc-version: ${{ matrix.versions.ghc }}
94 cabal-version: ${{ matrix.versions.cabal }}
96 # declare/restore cached things
97 # caching doesn't work for scheduled runs yet
98 # https://github.com/actions/cache/issues/63
100 - name: Cache cabal global package db
101 id: cabal-global
102 uses: actions/cache@v2
103 with:
104 path: |
105 ~/.cabal
106 key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }}
108 - name: Cache cabal work
109 id: cabal-local
110 uses: actions/cache@v2
111 with:
112 path: |
113 dist-newstyle
114 key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local
116 - name: Install dependencies
117 run: |
118 cabal ${{ matrix.versions.prefix }}update
119 cabal ${{ matrix.versions.prefix }}build ${{ matrix.versions.cabalopts }} --dependencies-only --enable-tests --disable-optimization
121 - name: Build and test
122 run: |
123 cabal ${{ matrix.versions.prefix }}build ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization 2>&1 | tee build.log
124 # fail if warnings in local build
125 ! grep -q ": *[Ww]arning:" build.log || exit 1
126 cabal ${{ matrix.versions.prefix }}test ${{ matrix.versions.cabalopts }} --disable-optimization ${{ matrix.versions.testopts }}
128 windows:
130 runs-on: windows-2019
132 steps:
133 - uses: actions/checkout@v2
135 # We should have ghc 8.10, cabal, stack pre-installed
136 # - uses: haskell/actions/setup@v1
137 # with:
138 # enable-stack: true
139 # stack-version: 'latest'
141 # declare/restore cached things
142 # caching doesn't work for scheduled runs yet
143 # https://github.com/actions/cache/issues/63
145 - name: Cache stack global package db
146 id: stack-global-package-db
147 uses: actions/cache@v2
148 with:
149 path: |
150 C:\Users\runneradmin\AppData\Roaming\stack\
151 key: ${{ runner.os }}-appdata-roaming-stack-${{ hashFiles('stack.yaml') }}
153 # stack's local package dbs for the project and each package
154 # - name: Cache .stack-work
155 # uses: actions/cache@v1
156 # with:
157 # path: .stack-work
158 # key: ${{ runner.os }}-stack-work-${{ hashFiles('stack.yaml') }}
159 # restore-keys: ${{ runner.os }}-stack-work
161 - name: Install dependencies
162 run: |
163 stack update
164 stack install happy
165 stack test --dependencies-only --fast
166 - name: Build and test
167 shell: cmd
168 run: |
169 stack test --fast --test-arguments=--hide-successes
171 macos:
173 runs-on: macOS-10.15
174 strategy:
175 fail-fast: true
176 matrix:
177 versions:
178 - ghc: '8.8.4'
179 cabal: '3.2'
181 steps:
182 - uses: actions/checkout@v2
184 - name: Install recent cabal/ghc
185 uses: haskell/actions/setup@v1
186 with:
187 ghc-version: ${{ matrix.versions.ghc }}
188 cabal-version: ${{ matrix.versions.cabal }}
190 # declare/restore cached things
191 # caching doesn't work for scheduled runs yet
192 # https://github.com/actions/cache/issues/63
194 - name: Cache cabal global package db
195 id: cabal-global
196 uses: actions/cache@v2
197 with:
198 path: |
199 ~/.cabal
200 key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }}
202 - name: Cache cabal work
203 id: cabal-local
204 uses: actions/cache@v2
205 with:
206 path: |
207 dist-newstyle
208 key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local
210 - name: Install dependencies
211 run: |
212 cabal v2-update
213 cabal v2-build --dependencies-only --enable-tests --disable-optimization
214 - name: Build and test
215 run: |
216 cabal v2-build --enable-tests --disable-optimization 2>&1 | tee build.log
217 # fail if warnings in local build
218 ! grep -q ": *[Ww]arning:" build.log || exit 1
219 cabal v2-test --disable-optimization
221 benchmark:
223 runs-on: ubuntu-18.04
224 strategy:
225 fail-fast: true
226 matrix:
227 versions:
228 - ghc: '8.8.4'
229 cabal: '3.2'
230 - ghc: '8.10.2'
231 cabal: '3.2'
232 steps:
233 - uses: actions/checkout@v2
235 # need to install older cabal/ghc versions from ppa repository
237 - name: Install recent cabal/ghc
238 uses: haskell/actions/setup@v1
239 with:
240 ghc-version: ${{ matrix.versions.ghc }}
241 cabal-version: ${{ matrix.versions.cabal }}
243 # declare/restore cached things
244 # caching doesn't work for scheduled runs yet
245 # https://github.com/actions/cache/issues/63
247 - name: Cache cabal global package db
248 id: cabal-global
249 uses: actions/cache@v2
250 with:
251 path: |
252 ~/.cabal
253 key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }}
255 - name: Cache cabal work
256 id: cabal-local
257 uses: actions/cache@v2
258 with:
259 path: |
260 dist-newstyle
261 key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local
263 - name: Install dependencies
264 run: |
265 v2=$([ "${{ matrix.versions.cabal }}" = "2.2" ] && printf 'new' || printf 'v2')
266 cabal $v2-update
267 cabal $v2-build --dependencies-only --enable-optimization=1 --enable-benchmarks --disable-tests
269 - name: Build and test
270 run: |
271 v2=$([ "${{ matrix.versions.cabal }}" = "2.2" ] && printf 'new' || printf 'v2')
272 cabal $v2-build --enable-optimization=1 --enable-benchmarks --disable-tests 2>&1 | tee build.log
273 # fail if warnings in local build
274 ! grep -q ": *[Ww]arning:" build.log || exit 1
275 cabal $v2-bench --enable-optimization=1 --benchmark-options='--timeout=6 +RTS -T -RTS'