Experiement with stack in travis
[darcs-mirror-arbtt.git] / .travis.yml
1 # NB: don't set `language: haskell` here
2
3 # The following enables several GHC versions to be tested; often it's enough to test only against the last release in a major GHC version. Feel free to omit lines listings versions you don't need/want testing for.
4 env:
5  - CABALVER=1.18 GHCVER=7.8.4
6  - CABALVER=1.22 GHCVER=7.10.2
7  - CABALVER=head GHCVER=head  # see section about GHC HEAD snapshots
8  - WINDOWS=yes
9  - STACK=LTS-6
10  - STACK=nightly
11
12 matrix:
13   allow_failures:
14    - env: CABALVER=head GHCVER=head
15
16 # Note: the distinction between `before_install` and `install` is not important.
17 before_install:
18  - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
19  - export WINEPATH='C:\Program Files (x86)\GnuWin32\bin'
20  - if [ "$WINDOWS" = yes ]; then export W=wine; else export W=""; fi
21  - text -n "$WINDOWS"  && bash ./.travis-setup-windows.sh
22  - test -n "$CABALVER" && base ./.travis-setup-linux.sh
23  - test -n "$STACK" && stack setup --resolver $STACK
24
25 install:
26  - test -n "$STACK" && stack init --resolver $STACK --force
27  - test -n "$STACK" && stack stack solver --update-config
28  - test -n "$STACK" && stack build --only-dependencies
29
30 script:
31  - test -n "$CABALVER" && $W cabal configure --enable-tests --enable-benchmarks -v2
32  - test -n "$CABALVER" && $W cabal build
33  - test -n "$CABALVER" && $W cabal test
34  - test -n "$CABALVER" && $W cabal check
35  - test -n "$CABALVER" && $W cabal sdist
36  - test -n "$STACK" && stack build --test
37
38 # The following scriptlet checks that the resulting source distribution can be built & installed
39  - test -n "$CABALVER" && {
40    export SRC_TGZ=$($W cabal info . | awk '{print $2 ".tar.gz";exit}') ;
41    cd dist/;
42    if [ -f "$SRC_TGZ" ]; then
43       $W cabal install --force-reinstalls "$SRC_TGZ";
44    else
45       echo "expected '$SRC_TGZ' not found";
46       exit 1;
47    fi;
48    }