forked from bwinkel/cygrid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
260 lines (218 loc) · 10.7 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# We set the language to c because python isn't supported on the MacOS X nodes
# on Travis. However, the language ends up being irrelevant anyway, since we
# install Python ourselves using conda.
language: none
os:
- linux
# Setting sudo to false opts in to Travis-CI container-based builds.
sudo: false
# The apt packages below are needed for sphinx builds. A full list of packages
# that can be included can be found here:
#
# https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
addons:
apt:
packages:
- graphviz
- texlive-latex-extra
- dvipng
env:
global:
# The following versions are the 'default' for tests, unless
# overridden underneath. They are defined here in order to save having
# to repeat them for all configurations.
- PYTHON_VERSION=3.7
- NUMPY_VERSION=stable
- ASTROPY_VERSION=stable
- MAIN_CMD='python setup.py'
- SETUP_CMD='test'
- EVENT_TYPE='pull_request push'
- OMP_NUM_THREADS=2
- TWINE_USERNAME=bwinkel
# For this package-template, we include examples of Cython modules,
# so Cython is required for testing. If your package does not include
# Cython code, you can set CONDA_DEPENDENCIES=''
- CONDA_DEPENDENCIES='Cython pytest pytest-doctestplus'
- CONDA_DEPENDENCIES_DOC='Cython sphinx-astropy pytest scipy astroquery reproject pytest-doctestplus'
# List other runtime dependencies for the package that are available as
# pip packages here.
- PIP_DEPENDENCIES=''
# Conda packages for affiliated packages are hosted in channel
# "astropy" while builds for astropy LTS with recent numpy versions
# are in astropy-ci-extras. If your package uses either of these,
# add the channels to CONDA_CHANNELS along with any other channels
# you want to use.
- CONDA_CHANNELS='conda-forge'
# If there are matplotlib or other GUI tests, uncomment the following
# line to use the X virtual framebuffer.
# - SETUP_XVFB=True
# If you want to ignore certain flake8 errors, you can list them
# in FLAKE8_OPT, for example:
# - FLAKE8_OPT='--ignore=E501'
- FLAKE8_OPT=''
# Doctr deploy key for bwinkel/cygrid
- secure: "LeULuJ+925uj1rkhDgZdjVXbMcoZGtskAbzMmOmYhyYnQVyjHIYdIqlY7XFuxOk0GuGbzQcdo5U/bx5qAt4gYsgxf+X5aUdj0xTV0Q89+jm/QUyCYwan+PE9fxbprg7xiMsCUt5j7f7gk4cerBTFiuUMZt1U7v/jwvMZsZfHtkU7wp1oU4X0bqioJFlHGF2DmAcVj+3eLv8RoUAsiOceRKmrAEp/vcN6IC6Hu547UmwmW6oCs1+/mK+ZdNkI+mxEyZs5AYbb/eIFhzqKcC7vn+K9PqEUYc7JPMZsBJQoAQNZyHFIXm1hUkPqTNw9K4BTeQaWW3Yr7JJmpN0pI0I1vmGj8QDb1xF1UH9qxJ22t3yNdvjNNbBUzvsyFy2cDVuYzwH5ztxhCiGUgflSJlxOL982nbBoBJfJj2Y1kWAu0cZfKTHbf/ZrBHlT7yLd7sLrDPyrHduyt0qIDw+Fe4fn2i7b3OeZU3/AzfVYOAdnHOF0IWWXRYleeLrwsxfobDWQD1oSDrT9ZfIOo/9G7AIJ8EmeGDgTzEPwl8z+/v2tGdIt3VD2Ryt1qVC2t0Ke8EctSUf6ufM5mH1soJ7mVuUXGymifbNxeFCDhZNaijJbqEmdIoUKY+c2vM3cHY3Ue5KWW1Rrd0BC0gMgADI+yu6ftUHSweUYT8xZe/W9tXG0PnM="
# matrix:
# # Make sure that egg_info works without dependencies
# - PYTHON_VERSION=2.7 SETUP_CMD='egg_info'
# - PYTHON_VERSION=3.7 SETUP_CMD='egg_info'
matrix:
# Don't wait for allowed failures
fast_finish: true
include:
# We have to make the releases based on rather old numpy version
# otherwise users will keep getting "incompatible API" errors
# (For more information on ABI problems with numpy see:
# https://stackoverflow.com/questions/17709641/valueerror-numpy-dtype-has-the-wrong-size-try-recompiling/18369312)
# for Windows we'll use 1.11, for Linux/MacOS 1.9 is used
# Standard linux; also used for sdist'ing
- os: linux
env:
- DO_DIST=YES
- NUMPY_VERSION=1.11
# - ASTROPY_VERSION=stable
- ASTROPY_VERSION=2.0.11 # need old astropy, for numpy 1.9
# MacOS X - conda-clang, release
- os: osx
osx_image: xcode8.3
env:
- DO_MAC_DIST=YES
- COMPILER='conda-clang'
- NUMPY_VERSION=1.11
- ASTROPY_VERSION=2.0.11
# MacOS X - conda-clang, release
- os: osx
osx_image: xcode8.3
env:
- PYTHON_VERSION=3.6
- DO_MAC_DIST=YES
- COMPILER='conda-clang'
- NUMPY_VERSION=1.11
- ASTROPY_VERSION=2.0.11
# MacOS X - conda-clang, release
- os: osx
osx_image: xcode8.3
env:
- PYTHON_VERSION=3.5
- DO_MAC_DIST=YES
- COMPILER='conda-clang'
- NUMPY_VERSION=1.11
- ASTROPY_VERSION=2.0.11
# MacOS X - gcc
- os: osx
osx_image: xcode8.3
env:
- COMPILER='gcc'
# MacOS X - conda-gcc
- os: osx
osx_image: xcode8.3
env:
- COMPILER='conda-gcc'
# Do a coverage test.
- os: linux
env: SETUP_CMD='test --coverage'
# Check for sphinx doc build warnings - we do this first because it
# may run for a long time
- os: linux
env:
- PYTHON_VERSION=3.6
- SETUP_CMD='build_docs'
- CONDA_DEPENDENCIES=$CONDA_DEPENDENCIES_DOC
- NUMPY_VERSION=1.11
- ASTROPY_VERSION=2.0.11
- UPLOAD_DOCS=YES
# Now try Astropy dev with the latest Python
- os: linux
env: ASTROPY_VERSION=development
EVENT_TYPE='pull_request push cron'
# Do a PEP8 test with flake8
- os: linux
env: MAIN_CMD='flake8 cygrid --count --show-source --statistics $FLAKE8_OPT' SETUP_CMD=''
allow_failures:
# MacOS X - LLVM
# compiles and builds, but tests often not running (seg-fault?)
- os: osx
osx_image: xcode8.3
env:
- CC='/usr/local/opt/llvm/bin/clang'
- CXX='/usr/local/opt/llvm/bin/clang++'
- CXX11='/usr/local/opt/llvm/bin/clang++'
- LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -lgomp'
- CPPFLAGS='-I/usr/local/opt/llvm/include -stdlib=libc++'
- COMPILER='llvm'
# Do a PEP8 test with flake8
# (allow to fail unless your code completely compliant)
- os: linux
env: MAIN_CMD='flake8 cygrid --count --show-source --statistics $FLAKE8_OPT' SETUP_CMD=''
before_install:
- echo "CONDA_DEPENDENCIES:" $CONDA_DEPENDENCIES
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ $COMPILER == "clang" ]]; then brew update; brew install libomp; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ $COMPILER == "llvm" ]]; then brew update; brew install llvm; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ $COMPILER == "gcc" ]]; then brew update; brew install gcc; brew link --overwrite gcc; fi
- 'if [[ $TRAVIS_OS_NAME == "osx" && $COMPILER == "gcc" ]]; then
gcc --version;
gcc-6 --version && export CC="gcc-6" && export CXX="g++-6" && export CPP="g++-6" && export LD="gcc-6" && export LDFLAGS="-Wl,-rpath,/usr/local/opt/gcc/lib/gcc/6/" || true;
gcc-7 --version && export CC="gcc-7" && export CXX="g++-7" && export CPP="g++-7" && export LD="gcc-7" && export LDFLAGS="-Wl,-rpath,/usr/local/opt/gcc/lib/gcc/7/" || true;
gcc-8 --version && export CC="gcc-8" && export CXX="g++-8" && export CPP="g++-8" && export LD="gcc-8" && export LDFLAGS="-Wl,-rpath,/usr/local/opt/gcc/lib/gcc/8/" || true;
fi'
install:
# We now use the ci-helpers package to set up our testing environment.
# This is done by using Miniconda and then using conda and pip to install
# dependencies. Which dependencies are installed using conda and pip is
# determined by the CONDA_DEPENDENCIES and PIP_DEPENDENCIES variables,
# which should be space-delimited lists of package names. See the README
# in https://github.com/astropy/ci-helpers for information about the full
# list of environment variables that can be used to customize your
# environment. In some cases, ci-helpers may not offer enough flexibility
# in how to install a package, in which case you can have additional
# commands in the install: section below.
- git clone --depth 1 git://github.com/astropy/ci-helpers.git
- source ci-helpers/travis/setup_conda.sh
# As described above, using ci-helpers, you should be able to set up an
# environment with dependencies installed using conda and pip, but in some
# cases this may not provide enough flexibility in how to install a
# specific dependency (and it will not be able to install non-Python
# dependencies). Therefore, you can also include commands below (as
# well as at the start of the install section or in the before_install
# section if they are needed before setting up conda) to install any
# other dependencies.
# - if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ $COMPILER == "conda-llvm" ]]; then conda install -c conda-forge llvm llvm-openmp; ls /Users/travis/miniconda/**/clang || true; ls /Users/travis/miniconda/**/gcc || true; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ $COMPILER == "conda-clang" ]]; then conda install -c conda-forge clang_osx-64 clangxx_osx-64 llvm-openmp openmp; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ $COMPILER == "conda-gcc" ]]; then conda install -c conda-forge gcc; gcc --version || true; fi
script:
- $MAIN_CMD $SETUP_CMD
- echo "UPLOAD_DOCS" $UPLOAD_DOCS
# have to remove the c-files, generated during build with
# git reset --hard HEAD;
- set -e
# for some strange reason, the new package versions (astropy?) create
# the _build/html in docs/docs and not in docs/
- 'if [[ $UPLOAD_DOCS ]]; then
$MAIN_CMD test;
conda install doctr;
git reset --hard HEAD;
if [[ $TRAVIS_TAG ]]; then
doctr deploy . --no-require-master --sync --built-docs docs/_build/html ;
else
doctr deploy --no-require-master --sync --built-docs docs/_build/html "latest";
fi
fi'
after_success:
# If coveralls.io is set up for this package, uncomment the line below.
# The coveragerc file may be customized as needed for your package.
- 'if [[ $SETUP_CMD == *coverage* ]]; then
coveralls --rcfile="cygrid/tests/coveragerc";
fi'
- echo "TRAVIS_TAG" $TRAVIS_TAG
- echo "DO_DIST" $DO_DIST
- 'if [[ $TRAVIS_TAG && $DO_DIST ]]; then
conda install twine;
python setup.py sdist;
python -m twine upload dist/*.tar.gz;
fi'
- echo "DO_MAC_DIST" $DO_MAC_DIST
- 'if [[ $TRAVIS_TAG && $DO_MAC_DIST ]]; then
conda install twine;
python setup.py bdist_wheel;
python -m twine upload dist/*.whl;
fi'