tools: travis: latest config

This commit is contained in:
Simon Michael 2017-03-30 14:17:46 -07:00
parent 84297b6ae2
commit 1afe5fba6e

View File

@ -5,6 +5,9 @@
# https://raw.githubusercontent.com/commercialhaskell/stack/master/doc/travis-simple.yml
# https://raw.githubusercontent.com/commercialhaskell/stack/master/doc/travis-complex.yml
# https://github.com/hvr/multi-ghc-travis#user-content-travisyml-template-for-non-container-based-infrastructure
# https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
# https://github.com/koterpillar/tianbar/blob/master/Dockerfile.base - custom docker image to save time
# https://github.com/mapnik/mapnik/blob/master/.travis.yml
#
# The Build Lifecycle #
# A build on Travis CI is made up of two steps:
@ -69,36 +72,55 @@ install: # completed commands' output is collapsed in log
# stack
- mkdir -p ~/.local/bin
- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
- chmod a+x ~/.local/bin/stack
- export PATH=~/.local/bin:$PATH
- if [[ ! -x ~/.local/bin/stack ]]; then travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'; chmod a+x ~/.local/bin/stack; fi
- stack --version
# GHC
- stack setup
- stack exec -- ghc --version
# hledger dependencies
- stack build --only-dependencies --test hledger-lib hledger hledger-ui #hledger-web hledger-api
# TODO: does this build some hledger packages, which get rebuilt later with -Werror ?
# hledger dependencies, or at least some of them, built separately to reduce memory usage
# - stack build --only-dependencies hledger-lib #hledger hledger-ui # --test
# TODO does this build hledger-lib & hledger, then rebuild them later with -Werror ?
# - stack build cryptohash
# - stack build --only-dependencies hledger-web # --test
# - stack build --only-dependencies hledger-api # --test
# hledger addon dependencies
- stack build Chart Chart-diagrams colour Diff here
#- stack build Chart Chart-diagrams colour Diff here
# shelltestrunner, need unreleased installable version
#- if [ ! -d shelltestrunner ]; then git clone http://github.com/simonmichael/shelltestrunner; fi
- git clone http://github.com/simonmichael/shelltestrunner
- stack install --stack-yaml=shelltestrunner/stack.yaml --resolver=lts-8.6 --install-ghc
#- git clone http://github.com/simonmichael/shelltestrunner
- if [[ ! -d shelltestrunner ]]; then git clone http://github.com/simonmichael/shelltestrunner; fi
- if [[ ! -x ~/.local/bin/shelltest ]]; then stack install --stack-yaml=shelltestrunner/stack.yaml --resolver=lts-8.6; fi
- shelltest --version
script: # all commands' output is shown in log, all commands must succeed for travis success
# build hledger packages, ensuring no warnings, no haddock failures, package test suites passing
- stack build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-lib hledger hledger-ui #hledger-web hledger-api
# build hledger packages, ensuring no warnings, and any deps not already cached, separately to reduce memory
- stack build --ghc-options=-Werror hledger-lib
- stack build --ghc-options=-Werror hledger
- stack build --ghc-options=-Werror hledger-ui
- stack build --ghc-options=-Werror hledger-web
- stack build --ghc-options=-Werror hledger-api
# run functional tests, skipping the ones for addons
- COLUMNS=80 stack exec -- shelltest --execdir -j16 tests -x /bin -x /addons
# we limit the `make` to 40 min
# to ensure that slow builds still upload their
# cache results and therefore should be faster
# (and might work) for the next build
# - DURATION=2400
# - scripts/travis-command-wrapper.py -s "date" -i 120 --deadline=$(( $(date +%s) + ${DURATION} )) make
# build hledger packages, ensuring no warnings, no haddock failures, package test suites passing
#- stack build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-lib hledger hledger-ui
#- stack build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-web
#- stack build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-api
# build hledger addons, ensuring no warnings
#- sh -e bin/compile.sh
# run functional tests
#- make functest