# 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

before_script:
  - psql -c 'create database api_test;' -U postgres
  - psql -U postgres api_test < ./db/schema.sql

# 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

language: haskell

before_install:
  # Instructions taken from https://github.com/commercialhaskell/stack/wiki/Downloads
  - wget -q -O- http://download.fpcomplete.com/ubuntu/fpco.key | sudo apt-key add -
  - echo 'deb http://download.fpcomplete.com/ubuntu/precise stable main' | sudo tee /etc/apt/sources.list.d/fpco.list
  - sudo apt-get update
  - sudo apt-get install stack -y

install:
  - stack setup

before_script:
  - psql -c 'create database api_test;' -U postgres
  - psql -U postgres api_test < ./db/schema.sql

script:
  - stack test

Use stack to build on Travis CI
Use stack to build on Travis CI
