language: haskell
ghc:
  - 7.8
notifications:
  email: false

# NB: don't set `language: haskell` here

# 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.

env:
 - GHCVER=7.8.2 # see note about Alex/Happy

# Note: the distinction between `before_install` and `install` is not
# important.

before_install:
 - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
 - travis_retry sudo apt-get update
 - travis_retry sudo apt-get install cabal-install-1.18 ghc-$GHCVER # see note about happy/alex
 - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.18/bin:$PATH
 - |
   if [ $GHCVER = "head" ] || [ ${GHCVER%.*} = "7.8" ]; then
     travis_retry sudo apt-get install happy-1.19.4 alex-3.1.3
     export PATH=/opt/alex/3.1.3/bin:/opt/happy/1.19.4/bin:$PATH
   else
     travis_retry sudo apt-get install happy alex
   fi

install:
 - cabal update
 - cabal install --only-dependencies --enable-tests

# Here starts the actual work to be performed for the package under test;
# any command which exits with a non-zero exit code causes the build to
# fail.

script:
 - cabal configure --enable-tests -v2  # -v2 provides useful information for debugging
 - cabal build   # this builds all libraries and executables (including tests/benchmarks)
 - cabal test
 - cabal sdist   # tests that a source-distribution can be generated

# The following scriptlet checks that the resulting source distribution can
# be built & installed

 - export SRC_TGZ=$(cabal-1.18 info . | awk '{print $2 ".tar.gz";exit}') ;
   cd dist/;
   if [ -f "$SRC_TGZ" ]; then
      cabal install "$SRC_TGZ";
   else
      echo "expected '$SRC_TGZ' not found";
      exit 1;
   fi

Add a TravisCI build script
Add a TravisCI build script

https://github.com/hvr/multi-ghc-travis
