forked from Chandra-MARX/marxs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
157 lines (130 loc) · 5.89 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
language: c
os:
- linux
addons:
apt:
packages:
- graphviz
- texlive-latex-extra
- dvipng
stage: Comprehensive tests
stages:
# Do the style check and a single test job, don't proceed if it fails
- name: Initial tests
# Test docs, astropy dev, and without optional dependencies
- name: Comprehensive tests
# These will only run when cron is opted in
- name: Cron tests
if: type = cron
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'
- PIP_DEPENDENCIES='transforms3d'
- CONDA_DEPENDENCIES='scipy cffi matplotlib jsonschema pyyaml'
- CONDA_DEPENDENCIES_DOC='sphinx-astropy'
- DEBUG=True
# 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='astropy'
# If there are matplotlib or other GUI tests, uncomment the following
# line to use the X virtual framebuffer.
# - SETUP_XVFB=True
before_install:
- wget https://github.com/Chandra-MARX/marx/archive/v5.4.0.tar.gz
- tar -xvf v5.4.0.tar.gz
- pwd
- cd marx-5.4.0 && ./configure --prefix=$TRAVIS_BUILD_DIR/marx/ CFLAGS="-O2 -g -fPIC" && make && make install
- cd ..
install:
# Set the location the MARX c code and compiled version in setup.cfg
- sed -i.bak 's|srcdir =|srcdir = '"$(echo $TRAVIS_BUILD_DIR)"'/marx-5.4.0/|g' setup.cfg
- sed -i.bak 's|libdir =|libdir = '"$(echo $TRAVIS_BUILD_DIR)"'/marx/lib/|g' setup.cfg
# 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_DEPDENDENCIES 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 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.
matrix:
# Don't wait for allowed failures
fast_finish: true
include:
# Make sure that egg_info works without dependencies
- stage: Initial tests
env: PYTHON_VERSION=3.7 SETUP_CMD='egg_info'
# Try MacOS X, usually enough only to run from cron as hardly there are
# issues that are not picked up by a linux worker
- os: osx
stage: Cron tests
env: SETUP_CMD='test' EVENT_TYPE='cron'
# Do a coverage test.
- os: linux
stage: Initial tests
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: SETUP_CMD='build_docs -w'
PIP_DEPENDENCIES="`echo $PIP_DEPENDENCIES sphinx-astropy`"
# Now try Astropy dev with the latest Python and LTS with and 3.x.
- os: linux
env: ASTROPY_VERSION=development
EVENT_TYPE='pull_request push cron'
# marxs does not support LTS any longer
#- os: linux
# env: PYTHON_VERSION=3.6 ASTROPY_VERSION=lts NUMPY_VERSION=1.13
# Add a job that runs from cron only and tests against astropy dev and
# numpy dev to give a change for early discovery of issues and feedback
# for both developer teams.
- os: linux
stage: Cron tests
env: ASTROPY_VERSION=development NUMPY_VERSION=development
EVENT_TYPE='cron'
# Try all python versions and Numpy versions. Since we can assume that
# the Numpy developers have taken care of testing Numpy with different
# versions of Python, we can vary Python and Numpy versions at the same
# time.
- os: linux
env: PYTHON_VERSION=3.6 NUMPY_VERSION=1.14
- os: linux
env: NUMPY_VERSION=1.15
# Do a PEP8 test with flake8
- os: linux
stage: Initial tests
env: MAIN_CMD='flake8 marxs --count --show-source --statistics $FLAKE8_OPT' SETUP_CMD=''
allow_failures:
# Do a PEP8 test with flake8
# (do allow to fail unless your code completely compliant)
- os: linux
stage: Initial tests
env: MAIN_CMD='flake8 marxs --count --show-source --statistics $FLAKE8_OPT' SETUP_CMD=''
script:
- python setup.py $SETUP_CMD
after_success:
# The coveragerc file may be customized as needed for your package.
- if [[ $SETUP_CMD == 'test --coverage' ]]; then coveralls --rcfile='marxs/tests/coveragerc'; fi