Instructions to run on startup in OS X (fixes #3)
[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-2
10  - STACK=lts-3
11  - STACK=lts-4
12  - STACK=lts-5
13  - STACK=lts-6
14  - STACK=nightly
15
16 matrix:
17   allow_failures:
18    - env: CABALVER=head GHCVER=head
19    - env: STACK=nightly
20
21 # Note: the distinction between `before_install` and `install` is not important.
22 before_install:
23  - mkdir -p ~/.local/bin
24  - export PATH=~/.local/bin:$PATH
25  # install stack
26  - test -z "$STACK" || { travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' ; }
27  # stack needs cabal :-(
28  - test -z "$STACK" || sudo add-apt-repository -y ppa:hvr/ghc
29  - test -z "$STACK" || sudo apt-get update
30  - test -z "$STACK" || sudo apt-get install cabal-install-1.24
31  - test -z "$STACK" || export PATH=/opt/cabal/1.24/bin:$PATH
32
33  - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
34  - export WINEPATH='C:\Program Files (x86)\GnuWin32\bin'
35  - if [ "$WINDOWS" = yes ]; then export W=wine; else export W=""; fi
36  - test -z "$WINDOWS"  || bash ./.travis-setup-windows.sh
37  - test -z "$CABALVER" || bash ./.travis-setup-linux.sh
38  - test -z "$STACK" || sudo apt-get install g++ gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev libwww-perl
39  - 'test -z "$STACK" || RESOLVER="$(HEAD -S https://www.stackage.org/$STACK|grep HEAD|tail -n1|cut -d/ -f4)"'
40  - test -z "$STACK" || stack setup --resolver $RESOLVER
41
42 install:
43  - 'test -z "$STACK" || echo "resolver: $RESOLVER" > stack.yaml'
44  - test -z "$STACK" || stack solver --update-config
45  - test -z "$STACK" || stack build --only-dependencies
46
47 script:
48  - test -z "$CABALVER" -a -z "$WINDOWS" || $W cabal configure --enable-tests --enable-benchmarks -v2
49  - test -z "$CABALVER" -a -z "$WINDOWS" || $W cabal build
50  - test -z "$CABALVER" -a -z "$WINDOWS" || $W cabal test
51  - test -z "$CABALVER" -a -z "$WINDOWS" || $W cabal check
52  - test -z "$CABALVER" -a -z "$WINDOWS" || $W cabal sdist
53  - test -z "$STACK" || stack build --test
54
55 # The following scriptlet checks that the resulting source distribution can be built & installed
56  - test -z "$CABALVER" -a -z "$WINDOWS" || {
57    export SRC_TGZ=$($W cabal info . | awk '{print $2 ".tar.gz";exit}') ;
58    cd dist/;
59    if [ -f "$SRC_TGZ" ]; then
60       $W cabal install --force-reinstalls "$SRC_TGZ";
61    else
62       echo "expected '$SRC_TGZ' not found";
63       exit 1;
64    fi;
65    }