99fb394ac1
- This should speed-up Travis CI tests and refers to #5049 - Travis uses build-stages to group tests together - The idea is to let fast tests fail first, then move to longer ones. - Added external perl to avoid download failure from CPAN and reduce build time - Disabling perl-dbi: continues to fail with (504 Gateway Time-out) on Travis - We now cover all the build systems in tests: - Add back `openblas` to Travis as a separate package. - Switched `openblas` for `astyle` to build a simpler MakefilePackage. - Added 'tut' (WafPackage) - Added 'py-setuptools' (PythonPackage) - Added 'perl-dbi' (PerlPackage) - Added 'build_systems' directory to the ones for which we get a summary - Added 'openjpeg' (CMakePackage) - Added 'r-rcpp' (RPackage) - Added comments to build tests to show the covered build system
163 lines
4.9 KiB
YAML
163 lines
4.9 KiB
YAML
#=============================================================================
|
|
# Project settings
|
|
#=============================================================================
|
|
# Only build master and develop on push; do not build every branch.
|
|
branches:
|
|
only:
|
|
- master
|
|
- develop
|
|
- /^releases\/.*$/
|
|
|
|
#=============================================================================
|
|
# Build matrix
|
|
#=============================================================================
|
|
jobs:
|
|
fast_finish: true
|
|
include:
|
|
- 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
|
|
#=============================================================================
|
|
# Use new Travis infrastructure (Docker can't sudo yet)
|
|
sudo: false
|
|
|
|
# Docs need graphviz to build
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gfortran
|
|
- mercurial
|
|
- graphviz
|
|
- 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 pip
|
|
- pip install --upgrade six
|
|
- pip install --upgrade setuptools
|
|
- pip install --upgrade codecov
|
|
- pip install --upgrade flake8
|
|
- 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.
|
|
- git config --global user.email "spack@example.com"
|
|
- git config --global user.name "Test User"
|
|
|
|
# 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:
|
|
- codecov --env PY_VERSION
|
|
|
|
#=============================================================================
|
|
# Notifications
|
|
#=============================================================================
|
|
notifications:
|
|
email:
|
|
recipients: tgamblin@llnl.gov
|
|
on_success: change
|
|
on_failure: always
|