diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-01-25 07:00:28 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-01-25 07:00:28 -0800 |
commit | cbd8662b631c780b196e381e1bc1282e4d2be4e8 (patch) | |
tree | 8fa2ab5d446f0d812f1024b4565eb71778f36ee6 /.circleci | |
parent | 1c8097136b0b78c6e064c564a9364a4d825fd952 (diff) | |
download | pandoc-cbd8662b631c780b196e381e1bc1282e4d2be4e8.tar.gz |
Add .circleci config.
Diffstat (limited to '.circleci')
-rw-r--r-- | .circleci/config.yml | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..b1a90c37c --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,123 @@ +version: "2.1" + +env: &env + environment: + LC_ALL: "C.UTF-8" + GHC_OPTS: "-O0 -Wall" + docker: + - image: fpco/stack-build:lts + +#----------------------------------------------------------------------------- +# Common utility stuff, not to be modified usually +#----------------------------------------------------------------------------- + +preinstall: &preinstall + run: | + echo 'export PATH=/opt/cabal/bin:$PATH' >> $BASH_ENV + source $BASH_ENV + apt-get update + +restore: &restore + # Needs to happen after installing ca-certificates + restore_cache: + key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }} + +save: &save + save_cache: + key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }} + paths: + - ~/.cabal + - ~/.ghc + - ~/.local + - ~/.stack + +commands: + cabal_build: + parameters: + ghcversion: + type: string + steps: + - checkout + - *preinstall + - *restore + - run: + name: install ghc + command: apt-get install -y ghc-<< paramaters.ghcversion >> + - run: | + set -e + apt-get install -y cabal-install-2.4 + cabal v2-update + TMPDIR=`mktemp -d -t circleci.XXXXXXX` + cabal v2-sdist --output-dir=${TMPDIR} + cd ${TMPDIR} + tar xvzf *.tar.gz + cd * + cabal v2-build -j2 --dependencies-only --enable-tests --ghc-options="${GHC_OPTS}" + cabal v2-test --ghc-options="${GHC_OPTS}" 2>build.log + cat build.log + # fail if we had warnings; this is to work around the fact + # that cabal v2 doesn't allow us to use -Werror for just local build: + # https://github.com/haskell/cabal/issues/4247 + ! grep -q "warning:" build.log + cabal v2-haddock --ghc-options="${GHC_OPTS}" + cabal check + - *save + +#----------------------------------------------------------------------------- +# Build matrix +#----------------------------------------------------------------------------- + +jobs: + cabal-ghc-8_6_3: + <<: *env + steps: + - cabal_build: + ghcversion: 8.6.3 + + cabal-ghc-8_4_4: + <<: *env + steps: + - cabal_build: + ghcversion: 8.4.4 + + cabal-ghc-8_2_2: + <<: *env + steps: + - cabal_build: + ghcversion: 8.2.2 + + cabal-ghc-8_0_2: + <<: *env + steps: + - cabal_build: + ghcversion: 8.0.2 + + cabal-ghc-7_10_3: + <<: *env + steps: + - cabal_build: + ghcversion: 7.10.3 + + stack-ghc-8_6: + <<: *env + steps: + - checkout + - *preinstall + - *restore + - run: | + set -e + apt-get install -y ghc-8.6.3 + stack update + stack test --system-ghc --ghc-options="${GHC_OPTS} -Werror" . + - *save + +workflows: + version: 2 + build: + jobs: + - cabal-ghc-8_6_3 + - cabal-ghc-8_4_4 + - cabal-ghc-8_2_2 + - cabal-ghc-8_0_2 + - cabal-ghc-7_10_3 + - stack-ghc-8_6 |