git.iko.soy/typeable/pandoc
on rc/2.11.0.4 help sign in
130 lines 3.4 kB history raw
1version: "2.1"
3env: &env
4 environment:
5 LC_ALL: "C.UTF-8"
6 docker:
7 - image: fpco/stack-build:lts-13
9#-----------------------------------------------------------------------------
10# Common utility stuff, not to be modified usually
11#-----------------------------------------------------------------------------
13preinstall: &preinstall
14 run: |
15 echo 'export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH' >> $BASH_ENV
16 source $BASH_ENV
17 apt-get update
19restore: &restore
20 # Needs to happen after installing ca-certificates
21 restore_cache:
22 key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
24save: &save
25 save_cache:
26 key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
27 paths:
28 - ~/.cabal
29 - ~/.ghc
30 - ~/.local
31 - ~/.stack
33commands:
34 cabal_build:
35 parameters:
36 ghcversion:
37 type: string
38 steps:
39 - checkout
40 - *preinstall
41 - *restore
42 - run:
43 name: install cabal
44 command: apt-get install -y cabal-install-2.4
45 - run:
46 name: install ghc
47 command: |
48 apt-get install -y ghc-<< parameters.ghcversion >>
49 - run:
50 name: build and test project
51 command: |
52 set -e
53 cabal v2-update
54 TMPDIR=`mktemp -d -t circleci.XXXXXXX`
55 cabal v2-sdist --output-dir=${TMPDIR}
56 cd ${TMPDIR}
57 tar xvzf *.tar.gz
58 cd *
59 cabal v2-build -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --dependencies-only --enable-tests --enable-benchmarks
60 cabal v2-build -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --enable-tests --enable-benchmarks 2>build.log
61 cat build.log
62 # fail if we had warnings in local build
63 # this is to work around the fact that cabal v2 doesn't allow
64 # us to use -Werror for just local build:
65 # https://github.com/haskell/cabal/issues/4247
66 ! grep -q "[Ww]arning:" build.log
67 cabal v2-test -w ghc-<< parameters.ghcversion >> -j2 --disable-optimization --enable-tests
68 cabal v2-haddock -w ghc-<< parameters.ghcversion >>
69 cabal check
70 - *save
72#-----------------------------------------------------------------------------
73# Build matrix
74#-----------------------------------------------------------------------------
76jobs:
77 cabal-ghc-8_8_1:
78 <<: *env
79 steps:
80 - cabal_build:
81 ghcversion: 8.8.1
83 cabal-ghc-8_6_5:
84 <<: *env
85 steps:
86 - cabal_build:
87 ghcversion: 8.6.5
89 cabal-ghc-8_4_4:
90 <<: *env
91 steps:
92 - cabal_build:
93 ghcversion: 8.4.4
95 cabal-ghc-8_2_2:
96 <<: *env
97 steps:
98 - cabal_build:
99 ghcversion: 8.2.2
101 cabal-ghc-8_0_2:
102 <<: *env
103 steps:
104 - cabal_build:
105 ghcversion: 8.0.2
107 stack-ghc-8_6:
108 <<: *env
109 steps:
110 - checkout
111 - *preinstall
112 - *restore
113 - run: |
114 set -e
115 apt-get install -y ghc-8.6.5
116 stack update
117 stack test --system-ghc --fast --ghc-options="-Werror" .
118 - *save
120workflows:
121 version: "2.1"
122 build:
123 jobs:
124 - cabal-ghc-8_6_5
125 - cabal-ghc-8_4_4
126 - cabal-ghc-8_2_2
127 - cabal-ghc-8_0_2
128 - stack-ghc-8_6
129 # - cabal-ghc-8_8_1