forked from networkx/networkx
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
173 lines (151 loc) · 5.59 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
# After changing this file, check it on:
# http://lint.travis-ci.org/
#
sudo: false
language: python
python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
cache:
directories:
- $HOME/.cache/pip
matrix:
fast_finish: true
include:
- python: "2.7"
env: PYTHON_VM=ipy OPTIONAL_DEPS=no
- python: "pypy"
env: PYTHON_VM=pypy OPTIONAL_DEPS=no
- python: "pypy3"
env: PYTHON_VM=pypy OPTIONAL_DEPS=no
allow_failures:
- env: PYTHON_VM=ipy OPTIONAL_DEPS=no
- python: "pypy"
addons:
apt:
packages:
- libatlas-dev
- libatlas-base-dev
- liblapack-dev
- gfortran
- libsuitesparse-dev
- libgdal-dev
- graphviz
- mono-devel
env:
matrix:
- OPTIONAL_DEPS=miniconda
- OPTIONAL_DEPS=no
before_install:
### Prepare the system to install prerequisites or dependencies
- pip install --upgrade pip
- uname -a
- printenv
# Workaround for travis-ci/travis-ci#2683
- if [[ "${OPTIONAL_DEPS}" == miniconda ]]; then
if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
wget http://repo.continuum.io/miniconda/Miniconda-3.7.0-Linux-x86_64.sh -O miniconda.sh;
else
wget http://repo.continuum.io/miniconda/Miniconda3-3.7.0-Linux-x86_64.sh -O miniconda.sh;
fi;
bash miniconda.sh -b -p $HOME/miniconda;
export PATH="$HOME/miniconda/bin:$PATH";
hash -r;
conda info -a;
conda config --set always_yes yes --set changeps1 no;
conda update -q conda;
fi
- if [[ "${PYTHON_VM}" == ipy ]]; then
pushd ..;
curl -L -o ipy-2.7-maint.zip https://github.com/IronLanguages/main/archive/ipy-2.7-maint.zip;
unzip -q ipy-2.7-maint.zip;
pushd main-ipy-2.7-maint;
sed -i '708 s/pGroup/pGroup = null/' 'Languages/IronPython/IronPython.SQLite/c#sqlite/pcache1_c.cs';
xbuild /p:Configuration=Release Solutions/IronPython.sln;
export IPY="${PWD}/bin/Release/ipy.exe";
export IRONPYTHONPATH="${PWD}/External.LCA_RESTRICTED/Languages/IronPython/27/Lib";
popd;
curl -L -o decorator-3.4.0.tar.gz https://pypi.python.org/packages/source/d/decorator/decorator-3.4.0.tar.gz;
tar xf decorator-3.4.0.tar.gz;
cp decorator-3.4.0/src/decorator.py "${IRONPYTHONPATH}";
curl -L -o enum34-1.0.tar.gz https://pypi.python.org/packages/source/e/enum34/enum34-1.0.tar.gz;
tar xf enum34-1.0.tar.gz;
cp enum34-1.0/enum/enum.py "${IRONPYTHONPATH}";
curl -L -o nose-1.3.4.tar.gz https://pypi.python.org/packages/source/n/nose/nose-1.3.4.tar.gz;
tar xf nose-1.3.4.tar.gz;
cp -R nose-1.3.4/nose "${IRONPYTHONPATH}";
popd;
fi
install:
### Install any prerequisites or dependencies necessary to run the build.
- if [[ "${OPTIONAL_DEPS}" == miniconda ]]; then
DEPS="pyyaml numpy scipy matplotlib Cython pandas pip gdal";
conda create -n test-environment python=$TRAVIS_PYTHON_VERSION $DEPS ;
source activate test-environment;
echo "Testing that gdal installed ok by if osgeo imports";
python -c "from osgeo import ogr;print('importing ogr worked')";
if [[ "${TRAVIS_PYTHON_VERSION}" =~ "2.7" ]]; then
pip install pygraphviz;
fi;
pip install pydot scikits.sparse;
fi
- if [[ "${PYTHON_VM}" != ipy ]]; then
pip install --upgrade nose coverage coveralls;
pip install nose-ignore-docstring;
fi
script:
- printenv PWD
- if [[ "${PYTHON_VM}" != ipy ]]; then
pip install .;
export NX_INSTALL=`pip show networkx | grep Location | awk '{print $2"/networkx"}'`;
fi
# nose 1.3.0 does not tell coverage to only cover the requested
# package (except during the report). So to restrict coverage, we must
# inform coverage through the .coveragerc file.
- if [[ "${PYTHON_VM}" != ipy ]]; then
cp .coveragerc $NX_INSTALL;
cp setup.cfg $NX_INSTALL;
fi
# Move to new directory so that networkx is not imported from repository.
# Why? Because we want the tests to make sure that NetworkX was installed
# correctly. Example: setup.py might not have included some submodules.
# Testing from the git repository cannot catch a mistake like that.
#
# Export current directory for logs.
- if [[ "${PYTHON_VM}" != ipy ]]; then
cd $NX_INSTALL;
printenv PWD;
fi
# Run nosetests.
- if [[ "${PYTHON_VM}" != ipy ]]; then
if [[ "${PYTHON_VM}" == pypy ]]; then
nosetests --verbosity=2 --with-ignore-docstrings;
else
nosetests --verbosity=2 --with-ignore-docstrings --with-coverage --cover-package=networkx;
fi;
else
mono "${IPY}" -X:ExceptionDetail -X:FullFrames -c 'from nose import main; main()' \--verbosity=2;
fi
after_success:
# `coveralls` needs to be run from the git repository, and it requires
# the .coverage file that was generated during the testing phase. The
# .coverage file stores absolute paths to the modules, and since we ran
# tests from the installed directory, the paths do not point to files in
# the git repository. Although this does not affect reported statistics,
# it does prevent coveralls from providing more detailed information on
# each file. So the paths in .coverage must be modified to match the
# repository paths. This is what `fixcoverage.py` does.
#
# Report coverage for 2.7 and 3.4 miniconda runs only.
- if [[ "${PYTHON_VM}" != ipy ]]; then
cp .coverage $TRAVIS_BUILD_DIR;
cd $TRAVIS_BUILD_DIR;
if [[ "${TRAVIS_PYTHON_VERSION}${OPTIONAL_DEPS}" =~ 2\.7miniconda|3\.4miniconda ]]; then
python fixcoverage.py ".*/networkx/" "$TRAVIS_BUILD_DIR/networkx/";
coveralls;
fi;
fi
notifications:
email: false