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 # Test against different stack LTS versions.
# 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: env:
- CABALVER=1.18 GHCVER=7.6.3 - LTS=6.2 # Most recent GHC 7.10 LTS
- CABALVER=1.18 GHCVER=7.8.4 # see note about Alex/Happy for GHC >= 7.8 - LTS=2.22 # Last GHC 7.8 LTS
- CABALVER=1.22 GHCVER=7.10.1
- CABALVER=1.22 GHCVER=7.10.2 # Enable caching.
# - CABALVER=head GHCVER=head # see section about GHC HEAD snapshots 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: before_install:
- travis_retry sudo add-apt-repository -y ppa:hvr/ghc # Download and unpack the stack executable
- travis_retry sudo apt-get update - export PATH=$HOME/.local/bin:$PATH
- travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER # see note about happy/alex - mkdir -p ~/.local/bin
- travis_retry sudo apt-get install libmagic-dev - curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
- travis_retry sudo apt-get install python3
- travis_retry git clone http://www.github.com/zeromq/zeromq4-x.git libzmq addons:
- export OLDPWD=$(pwd) && cd libzmq && travis_retry ./autogen.sh && travis_retry ./configure && make && travis_retry sudo make install && travis_retry sudo ldconfig && cd $OLDPWD apt:
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH packages:
- travis_retry sudo apt-get install happy-1.19.4 alex-3.1.3 - libmagic-dev
- export PATH=/opt/alex/3.1.3/bin:/opt/happy/1.19.4/bin:$PATH - zeromq3
- travis_retry sudo apt-get install libblas-dev liblapack-dev
install: install:
- cabal --version - stack build
- 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
# 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: script:
- | - stack test
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
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