tools: travis: latest config
This commit is contained in:
parent
84297b6ae2
commit
1afe5fba6e
46
.travis.yml
46
.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-simple.yml
|
||||||
# https://raw.githubusercontent.com/commercialhaskell/stack/master/doc/travis-complex.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://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 #
|
# The Build Lifecycle #
|
||||||
# A build on Travis CI is made up of two steps:
|
# A build on Travis CI is made up of two steps:
|
||||||
@ -69,36 +72,55 @@ install: # completed commands' output is collapsed in log
|
|||||||
|
|
||||||
# stack
|
# stack
|
||||||
- mkdir -p ~/.local/bin
|
- 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
|
- 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
|
- stack --version
|
||||||
|
|
||||||
# GHC
|
# GHC
|
||||||
- stack setup
|
- stack setup
|
||||||
- stack exec -- ghc --version
|
- stack exec -- ghc --version
|
||||||
|
|
||||||
# hledger dependencies
|
# hledger dependencies, or at least some of them, built separately to reduce memory usage
|
||||||
- stack build --only-dependencies --test hledger-lib hledger hledger-ui #hledger-web hledger-api
|
# - stack build --only-dependencies hledger-lib #hledger hledger-ui # --test
|
||||||
# TODO: does this build some hledger packages, which get rebuilt later with -Werror ?
|
# 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
|
# hledger addon dependencies
|
||||||
- stack build Chart Chart-diagrams colour Diff here
|
#- stack build Chart Chart-diagrams colour Diff here
|
||||||
|
|
||||||
# shelltestrunner, need unreleased installable version
|
# shelltestrunner, need unreleased installable version
|
||||||
#- if [ ! -d shelltestrunner ]; then git clone http://github.com/simonmichael/shelltestrunner; fi
|
#- git clone http://github.com/simonmichael/shelltestrunner
|
||||||
- git clone http://github.com/simonmichael/shelltestrunner
|
- if [[ ! -d shelltestrunner ]]; then git clone http://github.com/simonmichael/shelltestrunner; fi
|
||||||
- stack install --stack-yaml=shelltestrunner/stack.yaml --resolver=lts-8.6 --install-ghc
|
- if [[ ! -x ~/.local/bin/shelltest ]]; then stack install --stack-yaml=shelltestrunner/stack.yaml --resolver=lts-8.6; fi
|
||||||
- shelltest --version
|
- shelltest --version
|
||||||
|
|
||||||
script: # all commands' output is shown in log, all commands must succeed for travis success
|
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
|
# build hledger packages, ensuring no warnings, and any deps not already cached, separately to reduce memory
|
||||||
- stack build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-lib hledger hledger-ui #hledger-web hledger-api
|
- 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
|
# build hledger addons, ensuring no warnings
|
||||||
#- sh -e bin/compile.sh
|
#- sh -e bin/compile.sh
|
||||||
|
|
||||||
# run functional tests
|
# run functional tests
|
||||||
#- make functest
|
#- make functest
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user