@@ -1,52 +1,105 @@
1−# This file has been generated
21language: c
32sudo: false
43
4+cache:
5+ directories:
6+ - $HOME/.ghc
7+ - $HOME/.cabal
8+ - $HOME/.stack
9+
510matrix:
611 include:
7− # Have to use newer cabal, 1.16 passes -XHaskell98 to GHC
8− - env: CABALVER=1.22 GHCVER=6.12.3
9− addons: {apt: {packages: [cabal-install-1.22,ghc-6.12.3], sources: [hvr-ghc]}}
10− - env: CABALVER=1.16 GHCVER=7.0.4
11− addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.4], sources: [hvr-ghc]}}
12− - env: CABALVER=1.16 GHCVER=7.2.2
13− addons: {apt: {packages: [cabal-install-1.16,ghc-7.2.2], sources: [hvr-ghc]}}
14− - env: CABALVER=1.16 GHCVER=7.4.2
15− addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2], sources: [hvr-ghc]}}
16− - env: CABALVER=1.16 GHCVER=7.6.3
17− addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}}
18− - env: CABALVER=1.18 GHCVER=7.8.4
19− addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
20− - env: CABALVER=1.22 GHCVER=7.10.1
21− addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1], sources: [hvr-ghc]}}
22− - env: CABALVER=head GHCVER=head
23− addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
12+ - env: BUILD=cabal GHCVER=7.4.2 CABALVER=1.16
13+ compiler: ": #GHC 7.4.2"
14+ addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2], sources: [hvr-ghc]}}
15+ - env: BUILD=cabal GHCVER=7.6.3 CABALVER=1.16
16+ compiler: ": #GHC 7.6.3"
17+ addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}}
18+ - env: BUILD=cabal GHCVER=7.8.4 CABALVER=1.18
19+ compiler: ": #GHC 7.8.4"
20+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
21+ - env: BUILD=cabal GHCVER=7.10.3 CABALVER=1.22
22+ compiler: ": #GHC 7.10.3"
23+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}
24+
25+ - env: BUILD=cabal GHCVER=head CABALVER=head
26+ compiler: ": #GHC HEAD"
27+ addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
28+
29+ - env: BUILD=stack ARGS="--resolver lts-2"
30+ compiler: ": #stack 7.8.4"
31+ addons: {apt: {packages: [ghc-7.8.4], sources: [hvr-ghc]}}
32+
33+ - env: BUILD=stack ARGS="--resolver lts-3"
34+ compiler: ": #stack 7.10.2"
35+ addons: {apt: {packages: [ghc-7.10.2], sources: [hvr-ghc]}}
36+
37+ - env: BUILD=stack ARGS="--resolver lts-5"
38+ compiler: ": #stack 7.10.3"
39+ addons: {apt: {packages: [ghc-7.10.3], sources: [hvr-ghc]}}
40+
41+ - env: BUILD=stack ARGS="--resolver nightly"
42+ compiler: ": #stack nightly"
43+ addons: {apt: {packages: [libgmp-dev]}}
44+
45+ - env: BUILD=stack ARGS="--resolver lts-2"
46+ compiler: ": #stack 7.8.4 osx"
47+ os: osx
48+
49+ - env: BUILD=stack ARGS="--resolver lts-3"
50+ compiler: ": #stack 7.10.2 osx"
51+ os: osx
52+
53+ - env: BUILD=stack ARGS="--resolver lts-5"
54+ compiler: ": #stack 7.10.3 osx"
55+ os: osx
56+
57+ - env: BUILD=stack ARGS="--resolver nightly"
58+ compiler: ": #stack nightly osx"
59+ os: osx
2460
2561 allow_failures:
26− - env: CABALVER=head GHCVER=head
62+ - env: BUILD=cabal GHCVER=head CABALVER=head
63+ - env: BUILD=stack ARGS="--resolver nightly"
2764
2865before_install:
29− - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
66+- unset CC
67+- CABALARGS=""
68+- if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi
69+- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:$PATH
70+- mkdir -p ~/.local/bin
71+- |
72+ if [ `uname` = "Darwin" ];
73+ then
74+ curl --insecure -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin;
75+ else
76+ curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack';
77+ fi
3078
3179install:
32− - cabal --version
33− - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
34− - travis_retry cabal update
35− - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
36− - cabal install --only-dependencies --enable-tests --enable-benchmarks;
80+- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
81+- if [ -f configure.ac ]; then autoreconf -i; fi
82+- |
83+ case "$BUILD" in
84+ stack)
85+ stack --no-terminal --install-ghc $ARGS test --only-dependencies;;
86+ cabal)
87+ cabal --version;
88+ travis_retry cabal update;
89+ cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS;;
90+ esac
3791
3892script:
39− - if [ -f configure.ac ]; then autoreconf -i; fi
40− - cabal configure --enable-tests --enable-benchmarks -v2;
41− - cabal build # this builds all libraries and executables (including tests/benchmarks)
42− - cabal test
43− - cabal check
44− - cabal sdist # tests that a source-distribution can be generated
45−
46−# Check that the resulting source distribution can be built & installed.
47−# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
48−# `cabal install --force-reinstalls dist/*-*.tar.gz`
49− - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
50− (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
51−
52−# EOF
93+- case "$BUILD" in
94+ stack)
95+ stack --no-terminal $ARGS test --haddock --no-haddock-deps;;
96+ cabal)
97+ cabal configure --enable-tests --enable-benchmarks -v2 --ghc-options="-O0 -Werror";
98+ cabal build;
99+ cabal check || [ "$CABALVER" == "1.16" ];
100+ cabal test;
101+ cabal sdist;
102+ cabal copy;
103+ SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
104+ (cd dist && cabal install --force-reinstalls "$SRC_TGZ");;
105+ esac