rblaze/bond-haskell

View on GitHub
.travis.yml

Summary

Maintainability
Test Coverage
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