@@ -0,0 +1,81 @@
1+notifications:
2+ email: false
3+
4+language: c
5+
6+sudo: false
7+cache:
8+ directories:
9+ - $HOME/.cabal
10+ - $HOME/.ghc
11+ - $HOME/.local
12+ - $HOME/.stack
13+
14+matrix:
15+ include:
16+ # cabal/linux
17+ - env: BUILD=cabal GHCVER=7.10.3 CABALVER=1.22
18+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}
19+
20+ - env: BUILD=cabal GHCVER=8.0.2 CABALVER=1.24 COVERALLS=y
21+ addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}
22+
23+ - env: BUILD=cabal GHCVER=head CABALVER=head
24+ addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
25+
26+ # stack/linux use a pre-installed cabal-install for faster builds
27+ - env: BUILD=stack RESOLVER=lts-9.0 CABALVER=1.22
28+ addons: {apt: {packages: [libgmp-dev,cabal-install-1.22], sources: [hvr-ghc]}}
29+
30+ - env: BUILD=stack RESOLVER=nightly CABALVER=2.0
31+ addons: {apt: {packages: [libgmp-dev,cabal-install-2.0], sources: [hvr-ghc]}}
32+
33+ # cabal/stack/osx - TODO install cabal-install
34+ - env: BUILD=cabal RESOLVER=lts-9.0
35+ os: osx
36+
37+ - env: BUILD=stack RESOLVER=lts-9.0
38+ os: osx
39+
40+ allow_failures:
41+ - env: BUILD=cabal GHCVER=head CABALVER=head
42+# - env: BUILD=stack RESOLVER=nightly
43+
44+install: true
45+script:
46+ - |
47+ # Customizable options
48+ PACKAGE_TEST_VER="fde043d6c328090883286c69443f3ad2d73ddbb5"
49+ GHC_OPTIONS="-O0 -Werror"
50+ test -n "$COVERALLS" && \
51+ COVERALLS_OPTIONS="--coverage-mode=StrictlyFullLines \
52+ --exclude-dir=test test"
53+
54+ # Usually no changes should be needed after this
55+ add_path() { eval "test -n \"\$$1\"" && eval "PATH=/opt/$2/\"\$$1\"/bin:$PATH"; true; }
56+ cabal_env() { test "$BUILD" = cabal && echo $1; }
57+ pkg_test() { echo https://raw.githubusercontent.com/harendra-kumar/package-test/$1/package-test.sh; }
58+
59+ CURL=$(which curl)
60+ PATH=/bin:/usr/bin
61+ add_path GHCVER ghc
62+ add_path CABALVER cabal
63+
64+ # TRAVIS vars are needed by hpc-coveralls
65+ - env -i
66+ LC_ALL=C.UTF-8
67+ TRAVIS=$TRAVIS
68+ TRAVIS_JOB_ID=$TRAVIS_JOB_ID
69+ PATH=$PATH
70+ BUILD=$BUILD
71+ RESOLVER=$RESOLVER
72+ GHCVER=$GHCVER
73+ GHC_OPTIONS="$GHC_OPTIONS"
74+ COVERALLS_OPTIONS="$COVERALLS_OPTIONS"
75+ CABAL_REINIT_CONFIG=y
76+ TEST_INSTALL=y
77+ $(cabal_env CABALVER=$CABALVER)
78+ $(cabal_env CABAL_CHECK_RELAX=y)
79+ $(cabal_env CABAL_NO_SANDBOX=y)
80+ $(cabal_env CABAL_HACKAGE_MIRROR=hackage.haskell.org:http://hackage.fpcomplete.com)
81+ /bin/bash <($CURL -sL $(pkg_test $PACKAGE_TEST_VER))