3903658bfc
- Codecov cannot handle as many coverage reports as we are generating - as a result, our PR coverage pages have been broken for a while, and it's hard to tell people where to enhance their testing in PR reviews. - Scale back to only running coverage for 3.7 and 2.7 unit tests - This is *probably* better. We run the build tests for good measure, but we do not need to evaluate them for coverage. The coverage reports are about unit tests.
245 lines
6.1 KiB
YAML
245 lines
6.1 KiB
YAML
#=============================================================================
|
|
# Project settings
|
|
#=============================================================================
|
|
# Only build master and develop on push; do not build every branch.
|
|
branches:
|
|
only:
|
|
- master
|
|
- develop
|
|
- /^releases\/.*$/
|
|
|
|
#=============================================================================
|
|
# Build matrix
|
|
#=============================================================================
|
|
|
|
dist: xenial
|
|
|
|
jobs:
|
|
fast_finish: true
|
|
include:
|
|
- stage: 'style checks'
|
|
python: '2.7'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=flake8
|
|
- stage: 'unit tests + documentation'
|
|
python: '2.6'
|
|
dist: trusty
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=unit
|
|
- python: '2.7'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=unit, COVERAGE=true ]
|
|
- python: '3.4'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=unit
|
|
- python: '3.5'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=unit
|
|
- python: '3.6'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=unit
|
|
- python: '3.7'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=unit, COVERAGE=true ]
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- cmake
|
|
- gfortran
|
|
- graphviz
|
|
- gnupg2
|
|
- kcov
|
|
- mercurial
|
|
- ninja-build
|
|
- perl
|
|
- perl-base
|
|
- realpath
|
|
- patchelf
|
|
- r-base
|
|
- r-base-core
|
|
- r-base-dev
|
|
|
|
- python: '3.7'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=doc
|
|
- os: osx
|
|
language: generic
|
|
env: [ TEST_SUITE=unit, PYTHON_VERSION=2.7, COVERAGE=true ]
|
|
# mpich (AutotoolsPackage)
|
|
- stage: 'build tests'
|
|
python: '2.7'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=mpich' ]
|
|
# astyle (MakefilePackage)
|
|
- python: '2.7'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=astyle' ]
|
|
# tut (WafPackage)
|
|
- python: '2.7'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=tut' ]
|
|
# py-setuptools (PythonPackage)
|
|
- python: '2.7'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=py-setuptools' ]
|
|
# perl-dbi (PerlPackage)
|
|
# - python: '2.7'
|
|
# os: linux
|
|
# language: python
|
|
# env: [ TEST_SUITE=build, 'SPEC=perl-dbi' ]
|
|
# openjpeg (CMakePackage + external cmake)
|
|
- python: '2.7'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=openjpeg' ]
|
|
# r-rcpp (RPackage + external R)
|
|
- python: '2.7'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=r-rcpp' ]
|
|
# mpich (AutotoolsPackage)
|
|
- python: '3.6'
|
|
os: linux
|
|
language: python
|
|
env: [ TEST_SUITE=build, 'SPEC=mpich' ]
|
|
- python: '3.6'
|
|
stage: 'docker build'
|
|
sudo: required
|
|
os: linux
|
|
language: python
|
|
env: TEST_SUITE=docker
|
|
allow_failures:
|
|
- env: TEST_SUITE=docker
|
|
# temporary Python 2.6 exception while we figure out why Travis is hanging
|
|
- python: '2.6'
|
|
|
|
stages:
|
|
- 'style checks'
|
|
- 'unit tests + documentation'
|
|
- 'build tests'
|
|
- name: 'docker build'
|
|
if: type = push AND branch IN (develop, master)
|
|
|
|
|
|
#=============================================================================
|
|
# Environment
|
|
#=============================================================================
|
|
# Use new Travis infrastructure (Docker can't sudo yet)
|
|
sudo: false
|
|
|
|
# Docs need graphviz to build
|
|
addons:
|
|
# for Linux builds, we use APT
|
|
apt:
|
|
packages:
|
|
- ccache
|
|
- cmake
|
|
- gfortran
|
|
- graphviz
|
|
- gnupg2
|
|
- kcov
|
|
- mercurial
|
|
- ninja-build
|
|
- perl
|
|
- perl-base
|
|
- realpath
|
|
- r-base
|
|
- r-base-core
|
|
- r-base-dev
|
|
# for Mac builds, we use Homebrew
|
|
homebrew:
|
|
packages:
|
|
- python@2
|
|
- gcc
|
|
- gnupg2
|
|
- ccache
|
|
|
|
# ~/.ccache needs to be cached directly as Travis is not taking care of it
|
|
# (possibly because we use 'language: python' and not 'language: c')
|
|
cache:
|
|
pip: true
|
|
ccache: true
|
|
directories:
|
|
- ~/.mirror
|
|
- ~/.ccache
|
|
|
|
# Work around Travis's lack of support for Python on OSX
|
|
before_install:
|
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
pip2 install --upgrade pip;
|
|
pip2 install virtualenv;
|
|
virtualenv venv;
|
|
source venv/bin/activate;
|
|
fi
|
|
- ccache -M 2G && ccache -z
|
|
|
|
# Install various dependencies
|
|
install:
|
|
- pip install --upgrade pip
|
|
- pip install --upgrade six
|
|
- pip install --upgrade setuptools
|
|
- pip install --upgrade codecov
|
|
- pip install --upgrade flake8
|
|
- pip install --upgrade pep8-naming
|
|
- 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 ${TRAVIS_BRANCH}:${TRAVIS_BRANCH}
|
|
|
|
# Set up external deps for build tests, b/c they take too long to compile
|
|
- if [[ "$TEST_SUITE" == "build" ]]; then
|
|
cp share/spack/qa/configuration/*.yaml etc/spack/;
|
|
fi
|
|
|
|
#=============================================================================
|
|
# Building
|
|
#=============================================================================
|
|
services:
|
|
- docker
|
|
|
|
script:
|
|
- share/spack/qa/run-$TEST_SUITE-tests
|
|
|
|
after_success:
|
|
- ccache -s
|
|
- if [[ "$TEST_SUITE" == "unit" || "$TEST_SUITE" == "build" ]]; then
|
|
codecov --env PYTHON_VERSION
|
|
--required
|
|
--flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
|
|
fi
|
|
|
|
#=============================================================================
|
|
# Notifications
|
|
#=============================================================================
|
|
notifications:
|
|
email:
|
|
recipients: tgamblin@llnl.gov
|
|
on_success: change
|
|
on_failure: always
|