Commit fa059316 authored by Andrew Gibiansky's avatar Andrew Gibiansky

Rewrite .travis.yml to use containers and stack.

This should make the build faster and more reliable,
and hopefully ressurect the test suite.
parent 12e88a36
# Taken from multi-ghc-travis
# 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.
# Test against different stack LTS versions.
env:
- CABALVER=1.18 GHCVER=7.6.3
- CABALVER=1.18 GHCVER=7.8.4 # see note about Alex/Happy for GHC >= 7.8
- CABALVER=1.22 GHCVER=7.10.1
- CABALVER=1.22 GHCVER=7.10.2
# - CABALVER=head GHCVER=head # see section about GHC HEAD snapshots
- LTS=6.2 # Most recent GHC 7.10 LTS
- LTS=2.22 # Last GHC 7.8 LTS
# Enable caching.
sudo: false
# Caching so the next build will be fast too.
cache:
directories:
- $HOME/.ghc
- $HOME/.cabal
- $HOME/.stack
# 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-$CABALVER ghc-$GHCVER # see note about happy/alex
- travis_retry sudo apt-get install libmagic-dev
- travis_retry sudo apt-get install python3
- travis_retry git clone http://www.github.com/zeromq/zeromq4-x.git libzmq
- export OLDPWD=$(pwd) && cd libzmq && travis_retry ./autogen.sh && travis_retry ./configure && make && travis_retry sudo make install && travis_retry sudo ldconfig && cd $OLDPWD
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH
- 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
- travis_retry sudo apt-get install libblas-dev liblapack-dev
# Download and unpack the stack executable
- export PATH=$HOME/.local/bin:$PATH
- mkdir -p ~/.local/bin
- curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
addons:
apt:
packages:
- libmagic-dev
- zeromq3
install:
- cabal --version
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- travis_retry cabal update
- travis_retry cabal install cpphs
- travis_retry cabal install gtk2hs-buildtools
- |
if [ ${GHCVER%.*} = "7.8" ]; then
travis_retry cabal install arithmoi==0.4.* -fllvm
travis_retry git clone http://www.github.com/gibiansky/hindent
cd hindent && travis_retry cabal install && cd ..
fi
- stack build
# 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:
- |
if [[ ${GHCVER%.*} == "7.10" ]]; then
travis_retry ./build.sh all
else
travis_retry ./build.sh ihaskell
fi
# Build and run the test suite
- travis_retry cabal install --only-dependencies --enable-tests
- travis_retry cabal configure --enable-tests
- |
if [ ${GHCVER%.*} = "7.8" ]; then
travis_retry cabal test --show-details=always
fi
- |
if [ ${GHCVER%.*} = "7.8" ]; then
./verify_formatting.py
fi
- cabal sdist
# The following scriptlet checks that the resulting source distribution can be built & installed
- export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
cd dist/;
if [ -f "$SRC_TGZ" ]; then
cabal install --force-reinstalls "$SRC_TGZ";
else
echo "expected '$SRC_TGZ' not found";
exit 1;
fi
- stack test
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment