diff options
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 129 |
1 files changed, 100 insertions, 29 deletions
diff --git a/.travis.yml b/.travis.yml index 0a9a118b73..ec88f02e39 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ #============================================================================= # Project settings #============================================================================= -language: python - # Only build master and develop on push; do not build every branch. branches: only: @@ -13,29 +11,87 @@ branches: #============================================================================= # Build matrix #============================================================================= -python: - - 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 +jobs: + fast_finish: true include: - - os: osx - language: generic - env: TEST_SUITE=unit + - stage: 'flake8' + python: '2.7' + os: linux + language: python + env: TEST_SUITE=flake8 + - stage: 'unit tests + documentation' + python: '2.6' + os: linux + language: python + env: TEST_SUITE=unit + - python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=unit, COVERAGE=true ] + - python: '3.3' + os: linux + language: python + env: TEST_SUITE=unit + - python: '3.4' + os: linux + language: python + env: TEST_SUITE=unit + - python: '3.5' + os: linux + language: python + env: TEST_SUITE=unit + - python: '3.6' + os: linux + language: python + env: [ TEST_SUITE=unit, COVERAGE=true ] + - os: osx + language: generic + env: [ TEST_SUITE=unit, PYTHON_VERSION=2.7, COVERAGE=true ] + - python: '2.7' + os: linux + language: python + env: TEST_SUITE=doc +# mpich (AutotoolsPackage) + - stage: 'build tests' + python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=mpich' ] +# astyle (MakefilePackage) + - python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=astyle' ] +# tut (WafPackage) + - python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=tut' ] +# py-setuptools (PythonPackage) + - python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=py-setuptools' ] +# perl-dbi (PerlPackage) +# - python: '2.7' +# os: linux +# language: python +# env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=perl-dbi' ] +# openjpeg (CMakePackage + external cmake) + - python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=openjpeg' ] +# r-rcpp (RPackage + external R) + - python: '2.7' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=r-rcpp' ] +# mpich (AutotoolsPackage) + - python: '3.6' + os: linux + language: python + env: [ TEST_SUITE=build, COVERAGE=true, 'SPEC=mpich' ] #============================================================================= # Environment @@ -48,23 +104,35 @@ addons: apt: packages: - gfortran + - mercurial - graphviz - - libyaml-dev + - gnupg2 + - cmake + - r-base + - r-base-core + - r-base-dev + - perl + - perl-base + +cache: pip # 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 brew ls --versions gnupg2 > /dev/null || brew install gnupg2; 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 pip + - pip install --upgrade six + - pip install --upgrade setuptools + - pip install --upgrade codecov - pip install --upgrade flake8 - - pip install --upgrade sphinx - - pip install --upgrade mercurial + - if [[ "$TEST_SUITE" == "doc" ]]; then pip install --upgrade -r lib/spack/docs/requirements.txt; fi before_script: # Need this for the git tests to succeed. @@ -74,13 +142,16 @@ before_script: # Need this to be able to compute the list of changed files - git fetch origin develop:develop + # Set up external dependencies for build tests, because the take too long to compile + - if [[ "$TEST_SUITE" == "build" ]]; then cp share/spack/qa/configuration/packages.yaml etc/spack/packages.yaml; fi + #============================================================================= # Building #============================================================================= script: share/spack/qa/run-$TEST_SUITE-tests after_success: - - if [[ $TEST_SUITE == unit && $TRAVIS_PYTHON_VERSION == 2.7 && $TRAVIS_OS_NAME == "linux" ]]; then coveralls; fi + - codecov --env PY_VERSION #============================================================================= # Notifications |