diff options
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 91 |
1 files changed, 70 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml index 904143a00f..0a9a118b73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,72 @@ +#============================================================================= +# Project settings +#============================================================================= language: python + +# Only build master and develop on push; do not build every branch. +branches: + only: + - master + - develop + - /^releases\/.*$/ + +#============================================================================= +# Build matrix +#============================================================================= python: - - "2.6" - - "2.7" + - 2.6 + - 2.7 + +env: + - TEST_SUITE=unit + - TEST_SUITE=flake8 + - TEST_SUITE=doc +matrix: + # Flake8 and Sphinx no longer support Python 2.6, and one run is enough. + exclude: + - python: 2.6 + env: TEST_SUITE=flake8 + - python: 2.6 + env: TEST_SUITE=doc + # Explicitly include an OS X build with homebrew's python. + # Works around Python issues on Travis for OSX, described here: + # http://blog.fizyk.net.pl/blog/running-python-tests-on-traviss-osx-workers.html + include: + - os: osx + language: generic + env: TEST_SUITE=unit + +#============================================================================= +# Environment +#============================================================================= # Use new Travis infrastructure (Docker can't sudo yet) sudo: false -# Install coveralls to obtain code coverage -install: - - "pip install coveralls" - - "pip install flake8" +# Docs need graphviz to build +addons: + apt: + packages: + - gfortran + - graphviz + - libyaml-dev +# Work around Travis's lack of support for Python on OSX before_install: + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew ls --versions python > /dev/null || brew install python; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew ls --versions gcc > /dev/null || brew install gcc; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then virtualenv venv; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source venv/bin/activate; fi + +# Install various dependencies +install: + - pip install --upgrade coveralls + - pip install --upgrade flake8 + - pip install --upgrade sphinx + - pip install --upgrade mercurial + +before_script: # Need this for the git tests to succeed. - git config --global user.email "spack@example.com" - git config --global user.name "Test User" @@ -19,25 +74,19 @@ before_install: # Need this to be able to compute the list of changed files - git fetch origin develop:develop -script: - # Regular spack setup and tests - - . share/spack/setup-env.sh - - spack compilers - - spack config get compilers - - spack install -v libdwarf - - # Run unit tests with code coverage - - coverage run bin/spack test - - # Run flake8 code style checks. - - share/spack/qa/run-flake8 +#============================================================================= +# Building +#============================================================================= +script: share/spack/qa/run-$TEST_SUITE-tests after_success: - - coveralls + - if [[ $TEST_SUITE == unit && $TRAVIS_PYTHON_VERSION == 2.7 && $TRAVIS_OS_NAME == "linux" ]]; then coveralls; fi +#============================================================================= +# Notifications +#============================================================================= notifications: email: - recipients: - - tgamblin@llnl.gov + recipients: tgamblin@llnl.gov on_success: change on_failure: always |