summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2020-05-12 22:56:01 +0200
committerGitHub <noreply@github.com>2020-05-12 13:56:01 -0700
commit11fa61665f2c921d6c9af82d9556e2985a2f3bd4 (patch)
treebc94815517c74ef1cd41d8b0751ca808dd3498b5 /.travis.yml
parent6b41fb88a988cf35099ea5f5ecf7a3b42a5d7e1b (diff)
downloadspack-11fa61665f2c921d6c9af82d9556e2985a2f3bd4.tar.gz
spack-11fa61665f2c921d6c9af82d9556e2985a2f3bd4.tar.bz2
spack-11fa61665f2c921d6c9af82d9556e2985a2f3bd4.tar.xz
spack-11fa61665f2c921d6c9af82d9556e2985a2f3bd4.zip
travis: use bionic as default for Linux (#16521)
Modifications: - [x] Travis now uses `bionic` as a default (`xenial` used for Python 3.5, `trusty` for Python 2.6) - [x] Shell unit tests have been factored into their own run - [x] `kcov` is built only for tests that upload coverage results Overall with this we shave 3-4 mins. on each run and add an additional run of about 3 min. For some reason `kcov` 38 fails forwarding output when used with Python unit tests, so I used v34 for that and v38 (latest) for shell testing. Previously we were using v25.
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml40
1 files changed, 23 insertions, 17 deletions
diff --git a/.travis.yml b/.travis.yml
index 9e2a797393..8107ad876d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,7 +12,7 @@ branches:
# Build matrix
#=============================================================================
-dist: xenial
+dist: bionic
jobs:
fast_finish: true
@@ -32,27 +32,22 @@ jobs:
# Everything but patchelf, that is not available for trusty
packages:
- ccache
- - cmake
- gfortran
- graphviz
- gnupg2
- kcov
- mercurial
- ninja-build
- - perl
- - perl-base
- realpath
- - r-base
- - r-base-core
- - r-base-dev
- zsh
env: [ TEST_SUITE=unit, COVERAGE=true ]
- python: '2.7'
os: linux
language: python
- env: [ TEST_SUITE=unit, COVERAGE=true ]
+ env: [ TEST_SUITE=unit, COVERAGE=true, KCOV_VERSION=34 ]
- python: '3.5'
os: linux
+ dist: xenial
language: python
env: TEST_SUITE=unit
- python: '3.6'
@@ -66,7 +61,11 @@ jobs:
- python: '3.8'
os: linux
language: python
- env: [ TEST_SUITE=unit, COVERAGE=true ]
+ env: [ TEST_SUITE=unit, COVERAGE=true, KCOV_VERSION=34 ]
+ - python: '3.8'
+ os: linux
+ language: python
+ env: [ TEST_SUITE=shell, COVERAGE=true, KCOV_VERSION=38 ]
- python: '3.8'
os: linux
language: python
@@ -87,20 +86,13 @@ addons:
apt:
packages:
- ccache
- - cmake
+ - coreutils
- gfortran
- graphviz
- gnupg2
- - kcov
- mercurial
- ninja-build
- patchelf
- - perl
- - perl-base
- - realpath
- - r-base
- - r-base-core
- - r-base-dev
- zsh
update: true
@@ -114,6 +106,16 @@ cache:
before_install:
- ccache -M 2G && ccache -z
+ # Install kcov manually, since it's not packaged for bionic beaver
+ - if [[ "$KCOV_VERSION" ]]; then
+ sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev;
+ KCOV_ROOT=$(mktemp -d);
+ wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz;
+ tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz;
+ mkdir -p ${KCOV_ROOT}/build;
+ cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - ;
+ make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install;
+ fi
# Install various dependencies
install:
@@ -151,6 +153,10 @@ after_success:
--flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
fi
;;
+ shell)
+ codecov --env PYTHON_VERSION
+ --required
+ --flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
esac
#=============================================================================