git.iko.soy/typeable/pandoc
on 2.6 help sign in
124 lines 3.4 kB history raw
1version: "2.1"
3env: &env
4 environment:
5 LC_ALL: "C.UTF-8"
6 GHC_OPTS: "-O0 -Wall -fno-warn-unused-do-bind -Wincomplete-record-updates -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances -Wincomplete-uni-patterns -Werror=missing-home-modules -Widentities -Wcpp-undef -fhide-source-paths"
7 docker:
8 - image: fpco/stack-build:lts
10#-----------------------------------------------------------------------------
11# Common utility stuff, not to be modified usually
12#-----------------------------------------------------------------------------
14preinstall: &preinstall
15 run: |
16 echo 'export PATH=/opt/cabal/bin:$PATH' >> $BASH_ENV
17 source $BASH_ENV
18 apt-get update
20restore: &restore
21 # Needs to happen after installing ca-certificates
22 restore_cache:
23 key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
25save: &save
26 save_cache:
27 key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
28 paths:
29 - ~/.cabal
30 - ~/.ghc
31 - ~/.local
32 - ~/.stack
34commands:
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}" all
56 cabal v2-build -j2 --enable-tests --ghc-options="${GHC_OPTS}" all 2>build.log
57 # fail if we had warnings in local build
58 # this is to work around the fact that cabal v2 doesn't allow
59 # 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-test --ghc-options="${GHC_OPTS}" 2>build.log
63 cabal v2-haddock --ghc-options="${GHC_OPTS}"
64 cabal check
65 - *save
67#-----------------------------------------------------------------------------
68# Build matrix
69#-----------------------------------------------------------------------------
71jobs:
72 cabal-ghc-8_6_3:
73 <<: *env
74 steps:
75 - cabal_build:
76 ghcversion: 8.6.3
78 cabal-ghc-8_4_4:
79 <<: *env
80 steps:
81 - cabal_build:
82 ghcversion: 8.4.4
84 cabal-ghc-8_2_2:
85 <<: *env
86 steps:
87 - cabal_build:
88 ghcversion: 8.2.2
90 cabal-ghc-8_0_2:
91 <<: *env
92 steps:
93 - cabal_build:
94 ghcversion: 8.0.2
96 cabal-ghc-7_10_3:
97 <<: *env
98 steps:
99 - cabal_build:
100 ghcversion: 7.10.3
102 stack-ghc-8_6:
103 <<: *env
104 steps:
105 - checkout
106 - *preinstall
107 - *restore
108 - run: |
109 set -e
110 apt-get install -y ghc-8.6.3
111 stack update
112 stack test --system-ghc --ghc-options="${GHC_OPTS} -Werror" .
113 - *save
115workflows:
116 version: "2.1"
117 build:
118 jobs:
119 - cabal-ghc-8_6_3
120 - cabal-ghc-8_4_4
121 - cabal-ghc-8_2_2
122 - cabal-ghc-8_0_2
123 - cabal-ghc-7_10_3
124 - stack-ghc-8_6