From 1afe5fba6e45421abe79ef9fb5f055855c1d9f94 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Thu, 30 Mar 2017 14:17:46 -0700 Subject: [PATCH] tools: travis: latest config --- .travis.yml | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5ec68f269..a840e81a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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