on master help sign in
Move travis builds to circle ci
906a07epranaysashank
.circleci/config.yml+179−33
@@ -1,4 +1,4 @@
1−version: 2
1+version: 2.1
2
2
3#-----------------------------------------------------------------------------
3#-----------------------------------------------------------------------------
4# packcheck-0.4.2
4# packcheck-0.4.2
@@ -18,11 +18,11 @@ env: &env
18 # What to build
18 # What to build
19 # ------------------------------------------------------------------------
19 # ------------------------------------------------------------------------
20 # DISABLE_TEST: "y"
20 # DISABLE_TEST: "y"
21− DISABLE_BENCH: "y"
21+ # DISABLE_BENCH: "y"
22− DISABLE_DOCS: "y"
22+ # DISABLE_DOCS: "y"
23− DISABLE_SDIST_BUILD: "y"
23+ # DISABLE_SDIST_BUILD: "y"
24− DISABLE_DIST_CHECKS: "y"
24+ # DISABLE_DIST_CHECKS: "y"
25− # ENABLE_INSTALL: "y"
25+ ENABLE_INSTALL: "y"
26
26
27 # ------------------------------------------------------------------------
27 # ------------------------------------------------------------------------
28 # stack options
28 # stack options
@@ -31,7 +31,7 @@ env: &env
31 # github API limit while checking and upgrading/downgrading to the specific
31 # github API limit while checking and upgrading/downgrading to the specific
32 # version.
32 # version.
33 #STACKVER: "1.6.5"
33 #STACKVER: "1.6.5"
34− #STACK_UPGRADE: "y"
34+ STACK_UPGRADE: "y"
35 #RESOLVER: "lts-12"
35 #RESOLVER: "lts-12"
36
36
37 # ------------------------------------------------------------------------
37 # ------------------------------------------------------------------------
@@ -44,8 +44,8 @@ env: &env
44 # ------------------------------------------------------------------------
44 # ------------------------------------------------------------------------
45 # Where to find the required tools
45 # Where to find the required tools
46 # ------------------------------------------------------------------------
46 # ------------------------------------------------------------------------
47− PATH: /opt/ghc/bin:/sbin:/usr/sbin:/bin:/usr/bin
47+ PATH: /opt/ghc/bin:/opt/ghcjs/bin:/sbin:/usr/sbin:/bin:/usr/bin
48− #TOOLS_DIR: /opt
48+ TOOLS_DIR: /opt
49
49
50 # ------------------------------------------------------------------------
50 # ------------------------------------------------------------------------
51 # Location of packcheck.sh (the shell script invoked to perform CI tests ).
51 # Location of packcheck.sh (the shell script invoked to perform CI tests ).
@@ -60,8 +60,13 @@ env: &env
60 PACKCHECK_GITHUB_URL: "https://raw.githubusercontent.com/harendra-kumar/packcheck"
60 PACKCHECK_GITHUB_URL: "https://raw.githubusercontent.com/harendra-kumar/packcheck"
61 PACKCHECK_GITHUB_COMMIT: "563702bd02c41343dcd3dfcfef0845ca428a9240"
61 PACKCHECK_GITHUB_COMMIT: "563702bd02c41343dcd3dfcfef0845ca428a9240"
62
62
63+executors:
64+ amd64-executor:
63 docker:
65 docker:
64− - image: debian:stretch
66+ - image: ubuntu:xenial
67+ x86-executor:
68+ docker:
69+ - image: i386/ubuntu:eoan
65
70
66#-----------------------------------------------------------------------------
71#-----------------------------------------------------------------------------
67# Common utility stuff, not to be modified usually
72# Common utility stuff, not to be modified usually
@@ -73,11 +78,18 @@ preinstall: &preinstall
73 # required for https/cache save and restore
78 # required for https/cache save and restore
74 apt-get install -y ca-certificates
79 apt-get install -y ca-certificates
75
80
81+ # required to (re)generate the configure script
82+ apt-get install -y autoconf
83+
76− # For ghc and cabal-install packages from haskell.org
84+ # For ghc and cabal-install packages from hvr's ppa
77 # gnupg is required for apt-key to work
85 # gnupg is required for apt-key to work
78 apt-get install -y gnupg
86 apt-get install -y gnupg
87+ apt-get install -y apt-transport-https
79 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA3CBA3FFE22B574
88 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA3CBA3FFE22B574
89+ apt-get install -y software-properties-common
90+ add-apt-repository -y ppa:hvr/ghc
80− echo "deb http://downloads.haskell.org/debian stretch main" >> /etc/apt/sources.list
91+ # echo "deb http://downloads.haskell.org/debian stretch main" >> /etc/apt/sources.list
92+ echo "deb-src http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >> /etc/apt/sources.list
81 apt-get update
93 apt-get update
82
94
83 # required for packcheck
95 # required for packcheck
@@ -115,8 +127,27 @@ save: &save
115#-----------------------------------------------------------------------------
127#-----------------------------------------------------------------------------
116
128
117jobs:
129jobs:
118− cabal-ghc-8.6.5:
130+ stack-ghc-8_8:
131+ <<: *env
132+ executor: amd64-executor
133+ steps:
134+ - checkout
135+ - *preinstall
136+ - *restore
137+ - run:
138+ name: GHC 8.8 + stack lts-16.12
139+ environment:
140+ BUILD: "stack"
141+ RESOLVER: "lts-16.12"
142+ SDIST_OPTIONS: "--ignore-check"
143+ command: |
144+ apt-get build-dep -y ghc-8.8.4
145+ apt-get install -y cabal-install-3.2
146+ bash -c "$PACKCHECK $BUILD"
147+ - *save
148+ cabal-ghc-8_6_5:
119 <<: *env
149 <<: *env
150+ executor: amd64-executor
120 steps:
151 steps:
121 - checkout
152 - checkout
122 - *preinstall
153 - *preinstall
@@ -126,42 +157,67 @@ jobs:
126 apt-get install -y cabal-install-2.4
157 apt-get install -y cabal-install-2.4
127 bash -c "$PACKCHECK cabal-v2"
158 bash -c "$PACKCHECK cabal-v2"
128 - *save
159 - *save
129− cabal-ghc-8.4.4:
160+ cabal-ghc-8_4_4:
130 <<: *env
161 <<: *env
162+ executor: x86-executor
131 steps:
163 steps:
132 - checkout
164 - checkout
133 - *preinstall
165 - *preinstall
134 - *restore
166 - *restore
135− - run: |
167+ - run:
168+ name: GHC 8.4.4 + x86 + debug
169+ environment:
170+ BUILD: "cabal-v2"
171+ GHCVER: "8.4.4"
172+ CABAL_BUILD_OPTIONS: "--flag debug"
173+ command: |
136 apt-get install -y ghc-8.4.4
174 apt-get install -y ghc-8.4.4
137− apt-get install -y cabal-install-2.4
175+ apt-get install -y cabal-install-3.2
138− bash -c "$PACKCHECK cabal-v2"
176+ bash -c "$PACKCHECK $BUILD"
139 - *save
177 - *save
140− cabal-ghc-8.2.2:
178+ cabal-ghc-8_2_2:
141 <<: *env
179 <<: *env
180+ executor: amd64-executor
142 steps:
181 steps:
143 - checkout
182 - checkout
144 - *preinstall
183 - *preinstall
145 - *restore
184 - *restore
146− - run: |
185+ - run:
186+ environment:
187+ BUILD: "cabal-v2"
188+ DISABLE_TEST: "yes"
189+ DISABLE_BENCH: "yes"
190+ DISABLE_DOCS: "yes"
191+ DISABLE_SDIST_BUILD: "yes"
192+ DISABLE_DIST_CHECKS: "yes"
193+ command: |
147 apt-get install -y ghc-8.2.2
194 apt-get install -y ghc-8.2.2
148 apt-get install -y cabal-install-3.2
195 apt-get install -y cabal-install-3.2
149− apt-get install libtinfo-dev
150− bash -c "$PACKCHECK cabal-v2"
196+ bash -c "$PACKCHECK $BUILD"
151 - *save
197 - *save
152− cabal-ghc-8.0.2:
198+ cabal-ghc-8_0_2:
153 <<: *env
199 <<: *env
200+ executor: amd64-executor
154 steps:
201 steps:
155 - checkout
202 - checkout
156 - *preinstall
203 - *preinstall
157 - *restore
204 - *restore
158− - run: |
205+ - run:
206+ environment:
207+ BUILD: "cabal-v2"
208+ DISABLE_TEST: "yes"
209+ DISABLE_BENCH: "yes"
210+ DISABLE_DOCS: "yes"
211+ DISABLE_SDIST_BUILD: "yes"
212+ DISABLE_DIST_CHECKS: "yes"
213+ command: |
159 apt-get install -y ghc-8.0.2
214 apt-get install -y ghc-8.0.2
160− apt-get install -y cabal-install-2.4
215+ apt-get install -y cabal-install-3.2
161− bash -c "$PACKCHECK cabal-v2"
216+ bash -c "$PACKCHECK $BUILD"
162 - *save
217 - *save
163− cabal-ghc-7.10.3:
218+ cabal-ghc-7_10_3:
164 <<: *env
219 <<: *env
220+ executor: amd64-executor
165 steps:
221 steps:
166 - checkout
222 - checkout
167 - *preinstall
223 - *preinstall
@@ -171,8 +227,9 @@ jobs:
171 apt-get install -y cabal-install-2.4
227 apt-get install -y cabal-install-2.4
172 bash -c "$PACKCHECK cabal-v2"
228 bash -c "$PACKCHECK cabal-v2"
173 - *save
229 - *save
174− stack-ghc-8.4:
230+ stack-ghc-8_4:
175 <<: *env
231 <<: *env
232+ executor: amd64-executor
176 steps:
233 steps:
177 - checkout
234 - checkout
178 - *preinstall
235 - *preinstall
@@ -180,8 +237,9 @@ jobs:
180 - run: |
237 - run: |
181 bash -c "$PACKCHECK stack RESOLVER=lts-12"
238 bash -c "$PACKCHECK stack RESOLVER=lts-12"
182 - *save
239 - *save
183− stack-ghc-8.2:
240+ stack-ghc-8_2:
184 <<: *env
241 <<: *env
242+ executor: amd64-executor
185 steps:
243 steps:
186 - checkout
244 - checkout
187 - *preinstall
245 - *preinstall
@@ -189,8 +247,35 @@ jobs:
189 - run: |
247 - run: |
190 bash -c "$PACKCHECK stack RESOLVER=lts-11"
248 bash -c "$PACKCHECK stack RESOLVER=lts-11"
191 - *save
249 - *save
250+ cabal-ghcjs-8_4:
251+ <<: *env
252+ executor: amd64-executor
253+ steps:
254+ - checkout
255+ - *preinstall
256+ - *restore
257+ - run:
258+ name: GHCJS 8.4+no-test+no-docs
259+ environment:
260+ BUILD: cabal-v2
261+ ENABLE_GHCJS: "yes"
262+ DISABLE_TEST: "yes"
263+ ENABLE_INSTALL: ""
264+ DISABLE_DOCS: "yes"
265+ DISABLE_SDIST_BUILD: "yes"
266+ command: |
267+ add-apt-repository -y ppa:hvr/ghcjs
268+ add-apt-repository -y 'deb https://deb.nodesource.com/node_11.x xenial main'
269+ curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
270+ apt-get update
271+ apt-get install -y cabal-install-3.2
272+ apt-get install -y nodejs
273+ apt-get install -y ghcjs-8.4
274+ bash -c "$PACKCHECK $BUILD"
275+ - *save
192− coveralls-ghc-8.2.2:
276+ coveralls-ghc-8_2_2:
193 <<: *env
277 <<: *env
278+ executor: amd64-executor
194 steps:
279 steps:
195 - checkout
280 - checkout
196 - *preinstall
281 - *preinstall
@@ -209,8 +294,9 @@ jobs:
209 apt-get install libtinfo-dev
294 apt-get install libtinfo-dev
210 bash -c "$PACKCHECK cabal-v1"
295 bash -c "$PACKCHECK cabal-v1"
211 - *save
296 - *save
212− coveralls-ghc-8.8.3:
297+ coveralls-ghc-8_8_3:
213 <<: *env
298 <<: *env
299+ executor: amd64-executor
214 steps:
300 steps:
215 - checkout
301 - checkout
216 - *preinstall
302 - *preinstall
@@ -231,17 +317,77 @@ jobs:
231 bash -c "$PACKCHECK cabal-v2"
317 bash -c "$PACKCHECK cabal-v2"
232 no_output_timeout: 25m
318 no_output_timeout: 25m
233 - *save
319 - *save
320+ coveralls-ghc-8_10_2:
321+ <<: *env
322+ executor: amd64-executor
323+ steps:
324+ - checkout
325+ - *preinstall
326+ - *restore
327+ - run:
328+ name: Build and test with inspection, coverage, Werror
329+ environment:
330+ BUILD: "cabal-v2"
331+ COVERALLS_OPTIONS: "--repo-token=\"$REPO_TOKEN\" --coverage-mode=StrictlyFullLines --exclude-dir=test"
332+ CABAL_PROJECT: "cabal.project.coverage"
333+ command: |
334+ apt-get install -y ghc-8.10.2
335+ apt-get install -y cabal-install-3.2
336+ # required by hpc-coveralls
337+ apt-get install -y libcurl4-gnutls-dev
338+ apt-get install -y git
339+ apt-get install libtinfo-dev
340+ bash -c "$PACKCHECK $BUILD"
341+ no_output_timeout: 25m
342+ - *save
343+ hlint-src:
344+ <<: *env
345+ executor: amd64-executor
346+ steps:
347+ - checkout
348+ - *preinstall
349+ - *restore
350+ - run:
351+ name: Hlint src
352+ environment:
353+ BUILD: cabal-v2
354+ HLINT_OPTIONS: lint
355+ HLINT_TARGETS: src
356+ command: |
357+ bash -c "$PACKCHECK $BUILD"
358+ - *save
359+ hlint-test-benchmarks:
360+ <<: *env
361+ executor: amd64-executor
362+ steps:
363+ - checkout
364+ - *preinstall
365+ - *restore
366+ - run:
367+ name: Hlint tests and benchmarks
368+ environment:
369+ BUILD: cabal-v2
370+ HLINT_OPTIONS: lint
371+ HLINT_TARGETS: test benchmarks
372+ command: |
373+ bash -c "$PACKCHECK $BUILD"
374+ - *save
234
375
235workflows:
376workflows:
236 version: 2
377 version: 2
237 build:
378 build:
238 jobs:
379 jobs:
239 #- cabal-ghc-8.6.5
380 #- cabal-ghc-8.6.5
240− #- cabal-ghc-8.4.4
381+ - cabal-ghc-8_4_4
241− - cabal-ghc-8.2.2
382+ - cabal-ghc-8_2_2
242− #- cabal-ghc-8.0.2
383+ - cabal-ghc-8_0_2
243 #- cabal-ghc-7.10.3
384 #- cabal-ghc-7.10.3
385+ - cabal-ghcjs-8_4
386+ - stack-ghc-8_8
244 #- stack-ghc-8.4
387 #- stack-ghc-8.4
245 #- stack-ghc-8.2
388 #- stack-ghc-8.2
246 #- coveralls-ghc-8.2.2
389 #- coveralls-ghc-8.2.2
247 #- coveralls-ghc-8.8.3
390 #- coveralls-ghc-8.8.3
391+ - coveralls-ghc-8_10_2
392+ - hlint-src
393+ - hlint-test-benchmarks