@@ -3,57 +3,112 @@ dist: trusty
33language : cpp
44compiler : gcc
55
6+ git :
7+ depth : 3
8+
69addons :
710 apt :
8- packages :
9- - openmpi-bin
10- - libopenmpi-dev
11+ # Note &<name> creates a reference that we can refer to later using
12+ # *<name>, see https://en.wikipedia.org/wiki/YAML#Syntax
13+ packages : &standard_packages
1114 - libfftw3-dev
1215 - libnetcdf-dev
13- - libhdf5-serial-dev
1416 - netcdf-bin
1517 - hdf5-tools
18+ - python3
19+ - python3-pip
20+ - python3-numpy
21+ - python3-scipy
22+ - lcov
23+ - libhdf5-mpi-dev
24+ - openmpi-bin
25+ - libopenmpi-dev
1626
1727matrix :
28+ fast_finish : true
1829 include :
19- - env : CONFIGURE_OPTIONS=''
20- - env : CONFIGURE_OPTIONS='--enable-openmp' OMP_NUM_THREADS=2
21- - env : CONFIGURE_OPTIONS='--enable-debug'
22- - env : CONFIGURE_OPTIONS='--enable-checks=no --enable-optimize=3 --disable-signal --disable-track --disable-backtrace'
23- - env : CONFIGURE_OPTIONS='' MPICH_CC=clang MPICH_CXX=clang++ OMPI_CC=clang OMPI_CXX=clang++
24- compiler : clang
25- - env : CONFIGURE_OPTIONS='--enable-debug' MPICH_CC=clang MPICH_CXX=clang++ OMPI_CC=clang OMPI_CXX=clang++
26- compiler : clang
30+ - env : &default_env
31+ - CONFIGURE_OPTIONS='--enable-checks=no --enable-optimize=3 --disable-signal --disable-track --disable-backtrace'
32+ - SCRIPT_FLAGS='-uim'
33+ - PIP_PACKAGES='netcdf4'
2734 - addons :
2835 apt :
36+ sources :
37+ - ubuntu-toolchain-r-test
2938 packages :
30- - openmpi-bin
31- - libopenmpi-dev
32- - libfftw3-dev
33- - libnetcdf-dev
34- - libhdf5-serial-dev
35- - netcdf-bin
36- - hdf5-tools
39+ - g++-7
40+ - *standard_packages
41+ env :
42+ - *default_env
43+ - CONFIGURE_OPTIONS='--enable-debug'
44+ - CC=gcc-7 CXX=g++-7
45+ - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
46+ # The -Wno-literal-suffix flag in CXXFLAGS above is a temporary workaround to
47+ # disable a noisy message arising from the relatively old version of openmpi
48+ # in use in combination with the relatively new version of gcc. We should be able
49+ # to remove this if a newer openmpi version is introduced.
50+ - CXXFLAGS="-Wno-literal-suffix -Wall -Wextra"
51+ - env :
52+ - *default_env
53+ - CONFIGURE_OPTIONS='--enable-shared'
54+ - SCRIPT_FLAGS="-uim -t python -t shared"
55+ - PIP_PACKAGES='netcdf4 cython'
56+ - env :
57+ - *default_env
58+ - CONFIGURE_OPTIONS='--enable-openmp'
59+ - OMP_NUM_THREADS=2
60+ # CLANG
61+ - env :
62+ - *default_env
63+ - CONFIGURE_OPTIONS='--enable-debug'
64+ - MPICH_CC=clang MPICH_CXX=clang++
65+ - OMPI_CC=clang OMPI_CXX=clang++
66+ compiler : clang
67+ # COVERAGE
68+ - if : branch IN (master, next) OR commit_message =~ /build coverage/
69+ addons :
70+ apt :
71+ packages :
72+ - *standard_packages
3773 - libpetsc3.4.2-dev
38- env : CONFIGURE_OPTIONS='--with-petsc' PETSC_DIR=/usr/lib/petscdir/3.4.2 PETSC_ARCH=linux-gnu-c-opt
39- - addons :
74+ - libslepc3.4.2-dev
75+ - liblapack-dev
76+ - libparpack2-dev
77+ - jq
78+ env :
79+ - CONFIGURE_OPTIONS='--enable-code-coverage --enable-debug --enable-track --enable-checks=3 --with-petsc --with-lapack --with-slepc --enable-openmp'
80+ - OMP_NUM_THREADS=2
81+ - PETSC_DIR=/usr/lib/petscdir/3.4.2
82+ - PETSC_ARCH=linux-gnu-c-opt
83+ - SLEPC_DIR=/usr/lib/slepcdir/3.4.2
84+ - SLEPC_ARCH=linux-gnu-c-opt
85+ - SCRIPT_FLAGS='-cu'
86+ - PIP_PACKAGES='gcovr'
87+ - secure : " M5U3I81hzK41Kw7KB+DpEMxP/sgkWkFI4uiRZQDMDFRlhcitsJQQ/YGeBt3a0vo153m2P2PmmeKUl/lTo5WS5SfAVFI8BkcyBjpxZQXV3OD8ru7JsMgVc5pGwl2dvR8Qz02gUIbrIpAlf3YDnNVb6F1C9ofDaCnZU3GUTLH5Fy5z5Z8OpuTaLmTVMMnT2ZEcRawHbmlVhIB/9PUQUa+fM7iC+dtszFxZ2ma5LOHxPS2sGpRCKE5Sae1/xAFWjo4oO0ZqYu5JFvKdb+/2yWKTg/1aTyxCdqAzLg4ldzDlX759zXgtWn+k3TLiVyQ+gsvF8QZkh4BKvl/w2KZ20vRP3blzmxvdsSH+ZP92MZIIK9EkNPGd+UJJd5Hu+zwecEFyfO8bXB9l00kzUsVx+lo7VHbANuNO3b5a6FRiihTCgk+dfOxxrow/fci+lQ9BkmJg0680SIj2e6UM/P9lFgfQLH3IoacN1PtkyqnpJqdHUdbWmpqMtmitmQhXHjnJ+wDb5+i9b1fy5yEsB64rjgF9PBr1/Nos1XD4oGWAknXmQTgWhNyy6f+e0wBNcSUd5nrReLTOAscyXYpcTqONp1W999JSFQEH+YTwBfXytdkWaAGAFEhaaAXQ2jCwHO7jl/TODPfSeZgXkQiT5jgg63i5tlPB4Xn0MTSCX74bYIi16Tk="
88+ - if : branch IN (master, next) OR commit_message =~ /build coverage/
89+ addons :
90+ apt :
91+ packages :
92+ - *standard_packages
93+ - jq
94+ env :
95+ - CONFIGURE_OPTIONS='--enable-code-coverage --disable-debug --disable-checks'
96+ - SCRIPT_FLAGS='-cu'
97+ - PIP_PACKAGES='gcovr'
98+ - secure : " M5U3I81hzK41Kw7KB+DpEMxP/sgkWkFI4uiRZQDMDFRlhcitsJQQ/YGeBt3a0vo153m2P2PmmeKUl/lTo5WS5SfAVFI8BkcyBjpxZQXV3OD8ru7JsMgVc5pGwl2dvR8Qz02gUIbrIpAlf3YDnNVb6F1C9ofDaCnZU3GUTLH5Fy5z5Z8OpuTaLmTVMMnT2ZEcRawHbmlVhIB/9PUQUa+fM7iC+dtszFxZ2ma5LOHxPS2sGpRCKE5Sae1/xAFWjo4oO0ZqYu5JFvKdb+/2yWKTg/1aTyxCdqAzLg4ldzDlX759zXgtWn+k3TLiVyQ+gsvF8QZkh4BKvl/w2KZ20vRP3blzmxvdsSH+ZP92MZIIK9EkNPGd+UJJd5Hu+zwecEFyfO8bXB9l00kzUsVx+lo7VHbANuNO3b5a6FRiihTCgk+dfOxxrow/fci+lQ9BkmJg0680SIj2e6UM/P9lFgfQLH3IoacN1PtkyqnpJqdHUdbWmpqMtmitmQhXHjnJ+wDb5+i9b1fy5yEsB64rjgF9PBr1/Nos1XD4oGWAknXmQTgWhNyy6f+e0wBNcSUd5nrReLTOAscyXYpcTqONp1W999JSFQEH+YTwBfXytdkWaAGAFEhaaAXQ2jCwHO7jl/TODPfSeZgXkQiT5jgg63i5tlPB4Xn0MTSCX74bYIi16Tk="
99+
100+ - stage : Finalise Coverage
101+ if : branch IN (master, next) OR commit_message =~ /build coverage/
102+ addons :
40103 apt :
41- sources :
42- - ubuntu-toolchain-r-test
43104 packages :
44- - g++-6
45- - openmpi-bin
46- - libopenmpi-dev
47- - libfftw3-dev
48- - libnetcdf-dev
49- - libhdf5-serial-dev
50- - netcdf-bin
51- - hdf5-tools
52- env : CONFIGURE_OPTIONS='' CC=gcc-6 CXX=g++-6 MPICH_CC=gcc-6 MPICH_CXX=g++-6 OMPI_CC=gcc-6 OMPI_CXX=g++-6 MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" CXXFLAGS=-Wno-literal-suffix
53- # The -Wno-literal-suffix flag in CXXFLAGS above is a temporary workaround to
54- # disable a noisy message arising from the relatively old version of openmpi
55- # in use in combination with the relatively new version of gcc. We should be able
56- # to remove this if a newer openmpi version is introduced.
105+ - *standard_packages
106+ - jq
107+ env :
108+ - SCRIPT_FLAGS='-cu'
109+ - PIP_PACKAGES='gcovr'
110+ - secure : " M5U3I81hzK41Kw7KB+DpEMxP/sgkWkFI4uiRZQDMDFRlhcitsJQQ/YGeBt3a0vo153m2P2PmmeKUl/lTo5WS5SfAVFI8BkcyBjpxZQXV3OD8ru7JsMgVc5pGwl2dvR8Qz02gUIbrIpAlf3YDnNVb6F1C9ofDaCnZU3GUTLH5Fy5z5Z8OpuTaLmTVMMnT2ZEcRawHbmlVhIB/9PUQUa+fM7iC+dtszFxZ2ma5LOHxPS2sGpRCKE5Sae1/xAFWjo4oO0ZqYu5JFvKdb+/2yWKTg/1aTyxCdqAzLg4ldzDlX759zXgtWn+k3TLiVyQ+gsvF8QZkh4BKvl/w2KZ20vRP3blzmxvdsSH+ZP92MZIIK9EkNPGd+UJJd5Hu+zwecEFyfO8bXB9l00kzUsVx+lo7VHbANuNO3b5a6FRiihTCgk+dfOxxrow/fci+lQ9BkmJg0680SIj2e6UM/P9lFgfQLH3IoacN1PtkyqnpJqdHUdbWmpqMtmitmQhXHjnJ+wDb5+i9b1fy5yEsB64rjgF9PBr1/Nos1XD4oGWAknXmQTgWhNyy6f+e0wBNcSUd5nrReLTOAscyXYpcTqONp1W999JSFQEH+YTwBfXytdkWaAGAFEhaaAXQ2jCwHO7jl/TODPfSeZgXkQiT5jgg63i5tlPB4Xn0MTSCX74bYIi16Tk="
111+ script : wget -q -O ~/codacy-coverage-reporter-assembly-latest.jar https://oss.sonatype.org/service/local/repositories/releases/content/com/codacy/codacy-coverage-reporter/4.0.1/codacy-coverage-reporter-4.0.1-assembly.jar ; java -jar ~/codacy-coverage-reporter-assembly-latest.jar final
57112
58113before_install :
59114 # #################################################
@@ -64,19 +119,13 @@ before_install:
64119 - eval "${MATRIX_EVAL}"
65120 - echo "${CC} $(${CC} --version)"
66121 # #################################################
67- # Install Conda for python 3
122+ # Install remaining python3 packages using pip
68123 # #################################################
69- - source .install_miniconda_for_travis.sh
70-
71- # #################################################
72-
73- # Make sure to use the system NetCDF/HDF5 libraries, or we end up
74- # using the Conda libraries, which causes no end of headaches
75- - export CONFIGURE_OPTIONS="--with-netcdf=/usr/bin/nc-config --with-hdf5=/usr/bin/h5cc $CONFIGURE_OPTIONS"
124+ - source .pip_install_for_travis.sh ${PIP_PACKAGES}
76125
77126script :
78127 # Configure, compile and run test_suite
79- - " ./.travis_script.sh"
128+ - " ./.travis_script.sh ${SCRIPT_FLAGS} "
80129
81130notifications :
82131 # Send a notification to the BOUT++ Slack team
0 commit comments