forked from imageio/imageio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
134 lines (120 loc) · 4.3 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
# Travis CI configuration file for imageio
# Validate this at http://lint.travis-ci.org/
language: python
sudo: false
addons:
apt:
packages:
- libfreeimage3
# Only run travis build on push for master branch
branches:
only:
- master
matrix:
include:
- python: "3.6"
env: TEST_UNIT=0 TEST_STYLE=1
#
- python: "2.7"
env: TEST_UNIT=1 TEST_INSTALL=1 IS_LEGACY=1
- python: "3.4"
env: TEST_UNIT=1 TEST_FULL=1
- python: "3.5"
env: TEST_UNIT=1
- python: "3.6"
env: TEST_UNIT=1 TEST_COVER=1
before_install:
- REDIRECT_TO=/dev/stdout # change to /dev/null to silence Travis
# Install miniconda
- if [ "${TEST_UNIT}" == "1" ]; then
wget -q http://repo.continuum.io/miniconda/Miniconda3-4.0.5-Linux-x86_64.sh -O miniconda.sh;
chmod +x miniconda.sh;
./miniconda.sh -b -p ~/anaconda &> ${REDIRECT_TO};
export PATH=~/anaconda/bin:$PATH;
conda update --yes --quiet conda &> ${REDIRECT_TO};
fi;
- SRC_DIR=$(pwd)
# file size checks
- if [ "${TEST_STYLE}" == "1" ]; then
if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
GIT_TARGET_EXTRA="+refs/heads/${TRAVIS_BRANCH}";
GIT_SOURCE_EXTRA="+refs/pull/${TRAVIS_PULL_REQUEST}/merge";
else
GIT_TARGET_EXTRA="";
GIT_SOURCE_EXTRA="";
fi;
cd ~;
mkdir target-size-clone && cd target-size-clone;
git init &> ${REDIRECT_TO} && git remote add -t ${TRAVIS_BRANCH} origin git://github.com/${TRAVIS_REPO_SLUG}.git &>${REDIRECT_TO};
git fetch origin ${GIT_TARGET_EXTRA} &> ${REDIRECT_TO} && git checkout -qf FETCH_HEAD &> ${REDIRECT_TO} && cd ..;
TARGET_SIZE=`du -s target-size-clone | sed -e "s/\t.*//"`;
mkdir source-size-clone && cd source-size-clone;
git init &> ${REDIRECT_TO} && git remote add -t ${TRAVIS_BRANCH} origin git://github.com/${TRAVIS_REPO_SLUG}.git &> ${REDIRECT_TO};
git fetch origin ${GIT_SOURCE_EXTRA} &> ${REDIRECT_TO} && git checkout -qf FETCH_HEAD &> ${REDIRECT_TO} && cd ..;
SOURCE_SIZE=`du -s source-size-clone | sed -e "s/\t.*//"`;
if [ "${SOURCE_SIZE}" != "${TARGET_SIZE}" ]; then
SIZE_DIFF=`expr ${SOURCE_SIZE} - ${TARGET_SIZE}`;
else
SIZE_DIFF=0;
fi;
fi;
- cd ${SRC_DIR}
install:
# Install Python with numpy
- if [ "${TEST_UNIT}" == "1" ]; then
conda create -n testenv --yes --quiet pip python=$TRAVIS_PYTHON_VERSION > ${REDIRECT_TO};
source activate testenv > ${REDIRECT_TO};
conda install --yes --quiet numpy > ${REDIRECT_TO};
conda install --yes --quiet pillow -c conda-forge > ${REDIRECT_TO};
conda install --yes --quiet psutil > ${REDIRECT_TO};
fi;
# Install dependencies (also for testing)
- pip install invoke
- if [ "${TEST_STYLE}" == "1" ]; then
pip install -q flake8;
pip install -q sphinx;
pip install -q numpydoc;
else
pip install -q pytest pytest-cov;
pip install -q coveralls;
fi;
# Install optional dependencies
# We do NOT conda install gdal, because it causes segfaults
- if [ "${TEST_FULL}" == "1" ]; then
easy_install -q simpleitk; true;
conda install -y astropy;
fi;
# Install more deps on legacy py
- if [ "${IS_LEGACY}" == "1" ]; then
pip install enum34 futures;
fi;
# Install imageio, use installed version on only one machine
- if [ "${TEST_INSTALL}" == "1" ]; then
python setup.py build_with_fi install > ${REDIRECT_TO};
fi;
before_script:
script:
- python -c "import sys; print(sys.version, '\n', sys.prefix)";
# Run unit tests or style test
- if [ "${TEST_STYLE}" == "1" ]; then
echo "Size difference ${SIZE_DIFF} kB";
test ${SIZE_DIFF} -lt 100;
fi;
- if [ "${TEST_STYLE}" == "1" ]; then
invoke docs --clean --build;
fi;
- if [ "${TEST_STYLE}" == "1" ]; then
invoke test --style;
elif [ "${TEST_INSTALL}" == "1" ]; then
invoke test --installed;
else
invoke test --unit;
fi;
after_success:
- echo == ALL TESTS PASS ==
- if [ "${TEST_COVER}" == "1" ]; then
coveralls;
fi;
after_failure:
- echo == FAILURE ==
after_script: