@@ -8,38 +8,39 @@ dist: xenial
8
8
sudo : true
9
9
language : python
10
10
11
- cache :
12
- directories :
13
- - $HOME/.cache/pip
11
+ cache : pip
14
12
env :
15
13
global :
16
- - DEPENDS="six numpy scipy matplotlib h5py pillow pydicom "
17
- - OPTIONAL_DEPENDS=" "
14
+ - SETUP_REQUIRES="pip setuptools>=30.3.0 wheel "
15
+ - DEPENDS="numpy scipy matplotlib h5py pillow pydicom indexed_gzip "
18
16
- INSTALL_TYPE="setup"
19
17
- CHECK_TYPE="test"
20
18
- EXTRA_WHEELS="https://5cf40426d9f06eb7461d-6fe47d9331aba7cd62fc36c7196769e4.ssl.cf2.rackcdn.com"
21
19
- PRE_WHEELS="https://7933911d6844c6c53a7d-47bd50c35cd79bd838daf386af554a83.ssl.cf2.rackcdn.com"
22
20
- EXTRA_PIP_FLAGS="--find-links=$EXTRA_WHEELS"
23
21
- PRE_PIP_FLAGS="--pre $EXTRA_PIP_FLAGS --find-links $PRE_WHEELS"
22
+
24
23
python :
25
24
- 3.6
26
25
- 3.7
26
+
27
27
matrix :
28
28
include :
29
- # Absolute minimum dependencies
29
+ # Basic dependencies only
30
30
- python : 3.5
31
31
env :
32
- - DEPENDS="-r min-requirements.txt setuptools==30.3.0"
32
+ - DEPENDS="-r requirements.txt"
33
+ # Clean install
34
+ - python : 3.5
35
+ env :
36
+ - DEPENDS=""
37
+ - CHECK_TYPE=skiptests
33
38
# Absolute minimum dependencies
34
39
- python : 3.5
35
40
env :
41
+ - SETUP_REQUIRES="setuptools==30.3.0"
36
42
- DEPENDS="-r min-requirements.txt"
37
- - CHECK_TYPE="import"
38
43
# Absolute minimum dependencies plus oldest MPL
39
- # Check these against:
40
- # nibabel/info.py
41
- # doc/source/installation.rst
42
- # requirements.txt
43
44
- python : 3.5
44
45
env :
45
46
- DEPENDS="-r min-requirements.txt matplotlib==1.3.1"
@@ -51,8 +52,8 @@ matrix:
51
52
- python : 3.5
52
53
env :
53
54
- DEPENDS="numpy git+https://github.com/pydicom/pydicom.git@master"
54
- # test 3.5 against pre-release builds of everything
55
- - python : 3.5
55
+ # test 3.7 against pre-release builds of everything
56
+ - python : 3.7
56
57
env :
57
58
- EXTRA_PIP_FLAGS="$PRE_PIP_FLAGS"
58
59
- python : 3.5
@@ -61,9 +62,6 @@ matrix:
61
62
- python : 3.5
62
63
env :
63
64
- INSTALL_TYPE=wheel
64
- - python : 3.5
65
- env :
66
- - INSTALL_TYPE=requirements
67
65
- python : 3.5
68
66
env :
69
67
- INSTALL_TYPE=archive
@@ -73,62 +71,55 @@ matrix:
73
71
# Documentation doctests
74
72
- python : 3.5
75
73
env :
76
- - CHECK_TYPE="doc_doctests"
77
- # Run tests with indexed_gzip present
78
- - python : 3.5
79
- env :
80
- - OPTIONAL_DEPENDS="indexed_gzip"
74
+ - CHECK_TYPE="doc"
75
+
76
+ # Set up virtual environment, build package, build from depends
81
77
before_install :
82
- - travis_retry python -m pip install --upgrade pip
83
- - travis_retry pip install --upgrade virtualenv
78
+ - travis_retry python -m pip install --upgrade pip virtualenv
84
79
- virtualenv --python=python venv
85
80
- source venv/bin/activate
86
81
- python --version # just to check
87
- - travis_retry pip install -U pip setuptools>=27.0 wheel
88
- - travis_retry pip install coverage
89
- - if [ "${CHECK_TYPE}" == "test" ]; then
90
- travis_retry pip install nose mock;
91
- fi
92
- - if [ "${CHECK_TYPE}" == "style" ]; then
93
- travis_retry pip install flake8;
82
+ - travis_retry pip install -U $SETUP_REQUIRES
83
+ - |
84
+ if [ "$INSTALL_TYPE" == "sdist" ]; then
85
+ python setup.py egg_info # check egg_info while we're here
86
+ python setup.py sdist
87
+ export ARCHIVE=$( ls dist/*.tar.gz )
88
+ elif [ "$INSTALL_TYPE" == "wheel" ]; then
89
+ python setup.py bdist_wheel
90
+ export ARCHIVE=$( ls dist/*.whl )
91
+ elif [ "$INSTALL_TYPE" == "archive" ]; then
92
+ export ARCHIVE="package.tar.gz"
93
+ git archive -o $ARCHIVE HEAD
94
94
fi
95
- - travis_retry pip install $EXTRA_PIP_FLAGS $DEPENDS $OPTIONAL_DEPENDS
95
+ - if [ -n "$DEPENDS" ]; then pip install $EXTRA_PIP_FLAGS $DEPENDS; fi
96
+
96
97
# command to install dependencies
97
98
install :
98
99
- |
99
100
if [ "$INSTALL_TYPE" == "setup" ]; then
100
101
python setup.py install
101
- elif [ "$INSTALL_TYPE" == "sdist" ]; then
102
- python setup_egg.py egg_info # check egg_info while we're here
103
- python setup_egg.py sdist
104
- pip install $EXTRA_PIP_FLAGS dist/*.tar.gz
105
- elif [ "$INSTALL_TYPE" == "wheel" ]; then
106
- python setup_egg.py bdist_wheel
107
- pip install $EXTRA_PIP_FLAGS dist/*.whl
108
- elif [ "$INSTALL_TYPE" == "requirements" ]; then
109
- pip install $EXTRA_PIP_FLAGS -r requirements.txt
110
- python setup.py install
111
- elif [ "$INSTALL_TYPE" == "archive" ]; then
112
- git archive -o package.tar.gz HEAD
113
- pip install $EXTRA_PIP_FLAGS package.tar.gz
102
+ else
103
+ pip install $EXTRA_PIP_FLAGS $ARCHIVE
114
104
fi
105
+ # Basic import check
106
+ - python -c 'import nibabel; print(nibabel.__version__)'
107
+ - if [ "$CHECK_TYPE" == "skiptests" ]; then exit 0; fi
108
+
109
+ before_script :
115
110
# Point to nibabel data directory
116
111
- export NIBABEL_DATA_DIR="$PWD/nibabel-data"
112
+ # Because nibabel is already installed, will just look up the extra
113
+ - pip install $EXTRA_PIP_FLAGS "nibabel[$CHECK_TYPE]"
114
+
117
115
# command to run tests, e.g. python setup.py test
118
116
script :
119
117
- |
120
118
if [ "${CHECK_TYPE}" == "style" ]; then
121
119
# Run styles only on core nibabel code.
122
120
flake8 nibabel
123
- elif [ "${CHECK_TYPE}" == "import" ]; then
124
- # Import nibabel without attempting to test
125
- # Allows us to check missing dependencies masked by testing libraries
126
- printf 'import nibabel\nprint(nibabel.__version__)\n' > import_only.py
127
- cat import_only.py
128
- coverage run import_only.py
129
- elif [ "${CHECK_TYPE}" == "doc_doctests" ]; then
121
+ elif [ "${CHECK_TYPE}" == "doc" ]; then
130
122
cd doc
131
- pip install -r ../doc-requirements.txt
132
123
make html;
133
124
make doctest;
134
125
elif [ "${CHECK_TYPE}" == "test" ]; then
@@ -140,12 +131,10 @@ script:
140
131
else
141
132
false
142
133
fi
143
- after_success :
144
- - |
145
- if [ "${CHECK_TYPE}" == "test" ]; then
146
- travis_retry pip install codecov
147
- codecov
148
- fi
134
+
135
+ after_script :
136
+ - travis_retry pip install codecov
137
+ - codecov
149
138
150
139
notifications :
151
140
webhooks : http://nipy.bic.berkeley.edu:54856/travis
0 commit comments