forked from dftlibs/numgrid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
137 lines (118 loc) · 4.08 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
language: cpp
sudo: false
cache:
ccache: true
directories:
- $HOME/.ccache
env:
global:
- USE_CCACHE=1
- CCACHE_COMPRESS=1
- CCACHE_MAXSIZE=200M
- CCACHE_CPP2=1
matrix:
include:
# 1/ Linux Clang Builds
- os: linux
compiler: clang
addons: &clang37
apt:
sources: ['llvm-toolchain-precise-3.7', 'ubuntu-toolchain-r-test']
packages: ['clang-3.7', 'gfortran', 'python-virtualenv']
env: CXX_COMPILER='clang++-3.7' C_COMPILER='clang-3.7' Fortran_COMPILER='gfortran' BUILD_TYPE='release'
- os: linux
compiler: clang
addons: *clang37
env: CXX_COMPILER='clang++-3.7' C_COMPILER='clang-3.7' Fortran_COMPILER='gfortran' BUILD_TYPE='debug'
# 2/ Linux GCC Builds
- os: linux
compiler: gcc
addons: &gcc49
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-4.9', 'gcc-4.9', 'gfortran-4.9', 'python-virtualenv']
env: CXX_COMPILER='g++-4.9' C_COMPILER='gcc-4.9' Fortran_COMPILER='gfortran-4.9' BUILD_TYPE='release'
- os: linux
compiler: gcc
addons: *gcc49
env: CXX_COMPILER='g++-4.9' C_COMPILER='gcc-4.9' Fortran_COMPILER='gfortran-4.9' BUILD_TYPE='debug' COVERAGE='true'
- os: linux
compiler: gcc
addons: &gcc5
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-5', 'gcc-5', 'gfortran-5', 'python-virtualenv']
env: CXX_COMPILER='g++-5' C_COMPILER='gcc-5' Fortran_COMPILER='gfortran-5' BUILD_TYPE='release'
- os: linux
compiler: gcc
addons: *gcc5
env: CXX_COMPILER='g++-5' C_COMPILER='gcc-5' Fortran_COMPILER='gfortran-5' BUILD_TYPE='debug'
# 3/ OSX Clang Builds
- os: osx
osx_image: xcode7
compiler: clang
env: CXX_COMPILER='clang++' C_COMPILER='clang' Fortran_COMPILER='gfortran' BUILD_TYPE='debug'
- os: osx
osx_image: xcode7
compiler: clang
env: CXX_COMPILER='clang++' C_COMPILER='clang' Fortran_COMPILER='gfortran' BUILD_TYPE='release'
# 4/ OSX GCC5 Builds
- os: osx
osx_image: xcode7
compiler: gcc
env: CXX_COMPILER='g++' C_COMPILER='gcc' Fortran_COMPILER='gfortran' BUILD_TYPE='debug'
- os: osx
osx_image: xcode7
compiler: gcc
env: CXX_COMPILER='g++' C_COMPILER='gcc' Fortran_COMPILER='gfortran' BUILD_TYPE='release'
install:
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
cd ${TRAVIS_BUILD_DIR}
virtualenv venv
source venv/bin/activate
curl https://cmake.org/files/v3.8/cmake-3.8.0-Linux-x86_64.tar.gz | tar xvz
export PATH=$PWD/cmake-3.8.0-Linux-x86_64/bin:$PATH
export LD_LIBARY_PATH=$PWD/cmake-3.8.0-Linux-x86_64/lib:$LD_LIBRARY_PATH
elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
brew update &> /dev/null
brew cask uninstall --force oclint
brew install gcc python pyenv-virtualenv
brew upgrade cmake
fi
before_script:
- cd ${TRAVIS_BUILD_DIR}
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
pip install -r requirements.txt
elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
pip2 install -r requirements.txt
fi
- export PATH=$HOME/.local/bin:$PATH
- |
if [[ "${COVERAGE}" = true ]]; then
./setup --cxx=${CXX_COMPILER} --cc=${C_COMPILER} --fc=${Fortran_COMPILER} --type=${BUILD_TYPE} --cmake-options='-Hprojects/CMake' --coverage
else
./setup --cxx=${CXX_COMPILER} --cc=${C_COMPILER} --fc=${Fortran_COMPILER} --type=${BUILD_TYPE} --cmake-options='-Hprojects/CMake'
fi
- cd build
script:
- make -j 2
- ctest -V -j 2
- cd ..
- pep8 --ignore=E501 test/test.py
- pep8 --ignore=E501 test/valgrind.py
- NUMGRID_BUILD_DIR=$PWD/build PYTHONPATH=$PWD py.test -s -vv test/test.py
- |
if [[ "${VALGRIND}" = true ]]; then
PYTHONPATH=build pytest -vv test/valgrind.py
fi
after_success:
- |
if [[ "${COVERAGE}" = true ]]; then
coveralls -E ".*external.*" -E ".*CMakeFiles.*" -E ".*test/.*.cpp.*" || echo 'coveralls upload failed.'
fi
notifications:
email: false