diff options
-rw-r--r-- | .travis.yml | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/.travis.yml b/.travis.yml index d7f7612ad..b7a2f0287 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,45 @@ -language: haskell +# 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=6.12.3 + - GHCVER=7.4.2 + - GHCVER=7.6.3 + - GHCVER=7.8.1 # see note about Alex/Happy +# - GHCVER=head # see section about GHC HEAD snapshots + +# Note: the distinction between `before_install` and `install` is not important. before_install: - - cabal install cabal-dev - - 'git clone https://github.com/jgm/pandoc-types && cabal-dev add-source pandoc-types' + - 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 happy + - export PATH=/opt/ghc/$GHCVER/bin:$PATH + - git clone https://github.com/jgm/pandoc-types && cd pandoc-types && cabal install && cd .. + - | + if [ $GHCVER = "head" ] || [ $GHCVER = "7.8.1" ]; then + $CABAL install happy alex + export PATH=$HOME/.cabal/bin:$PATH + fi + install: - - cabal-dev install-deps --enable-tests + - cabal-1.18 update + - cabal-1.18 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-dev configure --enable-tests && cabal-dev build --ghc-options=-Werror && cabal-dev test' + - cabal-1.18 configure --enable-tests -v2 # -v2 provides useful information for debugging + - cabal-1.18 build --ghc-options=-Werror # this builds all libraries and executables (including tests/benchmarks) + - cabal-1.18 test + - cabal-1.18 check + - cabal-1.18 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-1.18 install "$SRC_TGZ"; + else + echo "expected '$SRC_TGZ' not found"; + exit 1; + fi + |