git.iko.soy/typeable/pandoc
on master help sign in
Add .circleci config.
commitcbd8662b631c780b196e381e1bc1282e4d2be4e8 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 25 Jan 2019, 07:00 (8 years ago) parent1c80971
1 file changed+123
.circleci/config.yml+123
.circleci/config.ymlnew file+123
@@ -0,0 +1,123 @@
1+version: "2.1"
2+
3+env: &env
4+ environment:
5+ LC_ALL: "C.UTF-8"
6+ GHC_OPTS: "-O0 -Wall"
7+ docker:
8+ - image: fpco/stack-build:lts
9+
10+#-----------------------------------------------------------------------------
11+# Common utility stuff, not to be modified usually
12+#-----------------------------------------------------------------------------
13+
14+preinstall: &preinstall
15+ run: |
16+ echo 'export PATH=/opt/cabal/bin:$PATH' >> $BASH_ENV
17+ source $BASH_ENV
18+ apt-get update
19+
20+restore: &restore
21+ # Needs to happen after installing ca-certificates
22+ restore_cache:
23+ key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
24+
25+save: &save
26+ save_cache:
27+ key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
28+ paths:
29+ - ~/.cabal
30+ - ~/.ghc
31+ - ~/.local
32+ - ~/.stack
33+
34+commands:
35+ cabal_build:
36+ parameters:
37+ ghcversion:
38+ type: string
39+ steps:
40+ - checkout
41+ - *preinstall
42+ - *restore
43+ - run:
44+ name: install ghc
45+ command: apt-get install -y ghc-<< paramaters.ghcversion >>
46+ - run: |
47+ set -e
48+ apt-get install -y cabal-install-2.4
49+ cabal v2-update
50+ TMPDIR=`mktemp -d -t circleci.XXXXXXX`
51+ cabal v2-sdist --output-dir=${TMPDIR}
52+ cd ${TMPDIR}
53+ tar xvzf *.tar.gz
54+ cd *
55+ cabal v2-build -j2 --dependencies-only --enable-tests --ghc-options="${GHC_OPTS}"
56+ cabal v2-test --ghc-options="${GHC_OPTS}" 2>build.log
57+ cat build.log
58+ # fail if we had warnings; this is to work around the fact
59+ # that cabal v2 doesn't allow us to use -Werror for just local build:
60+ # https://github.com/haskell/cabal/issues/4247
61+ ! grep -q "warning:" build.log
62+ cabal v2-haddock --ghc-options="${GHC_OPTS}"
63+ cabal check
64+ - *save
65+
66+#-----------------------------------------------------------------------------
67+# Build matrix
68+#-----------------------------------------------------------------------------
69+
70+jobs:
71+ cabal-ghc-8_6_3:
72+ <<: *env
73+ steps:
74+ - cabal_build:
75+ ghcversion: 8.6.3
76+
77+ cabal-ghc-8_4_4:
78+ <<: *env
79+ steps:
80+ - cabal_build:
81+ ghcversion: 8.4.4
82+
83+ cabal-ghc-8_2_2:
84+ <<: *env
85+ steps:
86+ - cabal_build:
87+ ghcversion: 8.2.2
88+
89+ cabal-ghc-8_0_2:
90+ <<: *env
91+ steps:
92+ - cabal_build:
93+ ghcversion: 8.0.2
94+
95+ cabal-ghc-7_10_3:
96+ <<: *env
97+ steps:
98+ - cabal_build:
99+ ghcversion: 7.10.3
100+
101+ stack-ghc-8_6:
102+ <<: *env
103+ steps:
104+ - checkout
105+ - *preinstall
106+ - *restore
107+ - run: |
108+ set -e
109+ apt-get install -y ghc-8.6.3
110+ stack update
111+ stack test --system-ghc --ghc-options="${GHC_OPTS} -Werror" .
112+ - *save
113+
114+workflows:
115+ version: 2
116+ build:
117+ jobs:
118+ - cabal-ghc-8_6_3
119+ - cabal-ghc-8_4_4
120+ - cabal-ghc-8_2_2
121+ - cabal-ghc-8_0_2
122+ - cabal-ghc-7_10_3
123+ - stack-ghc-8_6