summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml91
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