.travis.yml
sudo: false
os:
- linux
- osx
cache:
directories:
- $HOME/.stack
- $HOME/.cabal
- $HOME/.ghc
addons:
apt:
sources:
- hvr-ghc
packages:
- libgmp-dev
- ghc-7.8.4
- ghc-7.10.3
- ghc-8.0.1
- cabal-install-1.24
- happy-1.19.5
env:
- BUILD=stack STACK_ARGS="--resolver lts-7 --system-ghc"
- BUILD=stack STACK_ARGS="--resolver lts-6 --system-ghc"
- BUILD=cabal CABAL_VER="1.24" GHC_VER="7.8.4" HAPPY_VER="1.19.5"
matrix:
exclude:
- os: osx
env: BUILD=cabal CABAL_VER="1.24" GHC_VER="7.8.4" HAPPY_VER="1.19.5"
before_install:
- |
set -ex
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
mkdir -p ~/.local/bin
export PATH=$HOME/.local/bin:$PATH
case "$BUILD" in
stack)
travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
if [ "$STACK_ARGS" == "--resolver lts-6 --system-ghc" ]; then export PATH=/opt/ghc/7.10.3/bin:$PATH ; fi
if [ "$STACK_ARGS" == "--resolver lts-7 --system-ghc" ]; then export PATH=/opt/ghc/8.0.1/bin:$PATH ; fi
;;
cabal)
export PATH=/opt/cabal/${CABAL_VER}/bin:/opt/ghc/${GHC_VER}/bin:/opt/happy/${HAPPY_VER}/bin:$PATH
;;
esac
fi
set +ex
- |
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
brew update
brew install haskell-stack
fi
install:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then stack $STACK_ARGS --no-terminal setup ; fi
- |
set -ex
case "$BUILD" in
stack)
stack $STACK_ARGS --no-terminal test --only-snapshot
;;
cabal)
travis_retry cabal update
cabal install --only-dependencies --enable-tests --force-reinstalls --reorder-goals --max-backjumps=-1 `pwd`/compiler `pwd`/runtime
;;
esac
set +ex
script:
- |
set -ex
case "$BUILD" in
stack)
stack $STACK_ARGS --no-terminal build bond-haskell-compiler
stack $STACK_ARGS --no-terminal test bond-haskell
;;
cabal)
cd compiler
cabal install
cd ../runtime
cabal configure --enable-tests
cabal build
cabal test
cd ..
;;
esac
set +ex