Update the Travis CI script, use Cabal

Close #29. Also, fail if Haddock coverage is not 100%.
This commit is contained in:
mrkkrp 2016-06-23 15:49:12 +03:00
parent 6034ccedd9
commit 37af83a697

View File

@ -1,39 +1,49 @@
# This file is based on a generated file.
# See https://github.com/hvr/multi-ghc-travis.
language: c
sudo: false
# GHC depends on GMP. You can add other dependencies here as well.
addons:
apt:
packages:
- libgmp-dev
cache:
directories:
- $HOME/.stack
matrix:
include:
- env: ARGS="--resolver lts-2"
compiler: ": # lts-2 gch-7.8.4"
- env: ARGS="--resolver lts-3"
compiler: ": # lts-3 gch-7.10.2"
- env: ARGS="--resolver lts"
compiler: ": # lts"
- env: CABALVER=1.16 GHCVER=7.6.3
addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}}
- env: CABALVER=1.18 GHCVER=7.8.4
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,],sources: [hvr-ghc]}}
- env: CABALVER=1.22 GHCVER=7.10.3
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3],sources: [hvr-ghc]}}
- env: CABALVER=1.24 GHCVER=8.0.1
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1],sources: [hvr-ghc]}}
- env: CABALVER=head GHCVER=head
addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
allow_failures:
- env: CABALVER=head GHCVER=head
before_install:
# Using compiler above sets CC to an invalid value, so unset it
- unset CC
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
# Download and unpack the stack executable
- mkdir -p ~/.local/bin
- export PATH=$HOME/.local/bin:$PATH
- curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
install:
- cabal --version
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- travis_retry cabal update
- cabal install --only-dependencies --enable-tests
# This line does all of the work: installs GHC if necessary, build the library,
# executables, and test suites, and runs the test suites. --no-terminal works
# around some quirks in Travis's terminal implementation.
script: stack $ARGS --no-terminal --install-ghc test --haddock --no-haddock-deps
script:
- case "$CABALVER" in
"1.16") cabal configure --enable-tests -v2 -f dev ;;
"1.18") cabal configure --enable-tests --enable-library-coverage -v2 -f dev ;;
*) cabal configure --enable-tests --enable-coverage -v2 -f dev ;;
esac
- cabal build
- cabal test --show-details=always
- cabal sdist
- cabal haddock | grep "100%" | wc -l | grep "15"
# after_script:
# - cabal install hpc-coveralls
# - export PATH=~/.cabal/bin:$PATH
# - hpc-coveralls --coverage-mode=StrictlyFullLines
# --exclude-dir=tests
# test
notifications:
email: false