# Set-up sudo: false language: c # Cache builds cache: directories: - $HOME/.ghc - $HOME/.cabal - $HOME/.stack # Goal: support latest 3 GHC major versions. matrix: fast_finish: true include: - env: MODE=test RESOLVER=lts-6 # GHC 7.10 addons: {apt: {packages: [libgmp-dev]}} - env: MODE=test RESOLVER=lts-9 # GHC 8.0 addons: {apt: {packages: [libgmp-dev]}} - env: MODE=test RESOLVER=lts-10 # GHC 8.2 addons: {apt: {packages: [libgmp-dev]}} - env: MODE=test RESOLVER=nightly addons: {apt: {packages: [libgmp-dev]}} - env: MODE=doctest RESOLVER=lts-10 addons: {apt: {packages: [libgmp-dev]}} - env: MODE=style RESOLVER=lts-10 addons: {apt: {packages: [libgmp-dev]}} allow_failures: - env: MODE=test RESOLVER=nightly # Download and unpack the stack executable before_install: - export PATH=/opt/ghc/$GHCVER/bin:$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' - rm stack.yaml - if [[ -e .travis/$RESOLVER.yaml ]]; then mv .travis/$RESOLVER.yaml stack.yaml; else stack init --resolver=$RESOLVER; fi - stack --no-terminal setup - if [[ "$MODE" == "style" ]]; then stack --no-terminal install stylish-haskell; fi - if [[ "$MODE" == "doctest" ]]; then stack --no-terminal install doctest; fi # Run tests script: - stack --no-terminal build concurrency - stack --no-terminal build dejafu - stack --no-terminal build hunit-dejafu - stack --no-terminal build tasty-dejafu - stack --no-terminal build dejafu-tests - | echo -en 'travis_fold:start:script.test\\r' set -ex case "$MODE" in style) curl -sL https://raw.github.com/ndmitchell/weeder/master/misc/travis.sh | sh -s . curl -sL https://raw.github.com/ndmitchell/hlint/master/misc/travis.sh | sh -s concurrency dejafu hunit-dejafu tasty-dejafu stack exec ./style.sh git diff --exit-code concurrency dejafu hunit-dejafu tasty-dejafu ;; test) stack exec -- dejafu-tests --plain ;; doctest) stack exec -- bash -c "DEJAFU_DOCTEST=y doctest dejafu/Test" ;; esac set +ex echo -en 'travis_fold:end:script.test\\r'