language: haskell
env:
matrix:
- GHCVER=7.4.2
- GHCVER=7.6.3
- GHCVER=7.8.4
- GHCVER=7.10.1
- GHCVER=head
matrix:
allow_failures:
- env: GHCVER=head
before_install:
- |
if [ $GHCVER = `ghc --numeric-version` ]; then
echo "use system ghc: `which ghc` `ghc --numeric-version`"
else
travis_retry sudo add-apt-repository -y ppa:hvr/ghc
travis_retry sudo apt-get update
travis_retry sudo apt-get install -y --force-yes cabal-install-1.22 ghc-$GHCVER
export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.22/bin:$PATH
echo "use ppa:hvr/ghc: `which ghc` `ghc --numeric-version`"
fi
install:
- export PATH=$HOME/.cabal/bin:$PATH
- which cabal
- travis_retry cabal update
- cabal install --only-dependencies --enable-tests
- ghc-pkg list
script:
- which cabal
- cabal configure --enable-tests -fbuild-samples
- cabal build
- cabal test --show-details=always
# tests source distribution package
- cabal sdist
- |
PKGNAME="$(cabal info . | awk '/^\*/{print $2}')"
SRCTGZ="${PKGNAME}.tar.gz"
cd dist/
if [ -f "$SRCTGZ" ]; then
tar xvzf "$SRCTGZ"
cd "$PKGNAME"
NG=$(git ls-tree HEAD --full-tree -r | while read perm blob hash name; do [ -e "$name" ] || echo NG "$name"; done)
if [ -n "$NG" ]; then
echo "Missing files:"
echo $NG
exit 1
fi
fi