@@ -56,20 +56,6 @@ _build_main_image_py36: &build_main_image_py36
56
56
--build-arg VCS_REF="$(git rev-parse --short HEAD)" \
57
57
--build-arg VERSION="${CIRCLE_TAG}" /home/circleci/nipype
58
58
59
- _build_main_image_py27 : &build_main_image_py27
60
- name : Build main image (py27)
61
- no_output_timeout : 60m
62
- command : |
63
- tools/retry_cmd.sh -n 5 -s 15 \
64
- docker build \
65
- --rm=false \
66
- --tag nipype/nipype:py27 \
67
- --build-arg PYTHON_VERSION_MAJOR=2 \
68
- --build-arg PYTHON_VERSION_MINOR=7 \
69
- --build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
70
- --build-arg VCS_REF="$(git rev-parse --short HEAD)" \
71
- --build-arg VERSION="${CIRCLE_TAG}-py27" /home/circleci/nipype
72
-
73
59
_download_test_data : &_download_test_data
74
60
name : Download test data
75
61
no_output_timeout : 20m
@@ -113,7 +99,6 @@ _run_codecov_smoke: &_run_codecov_smoke
113
99
114
100
version : 2
115
101
jobs :
116
-
117
102
compare_base_dockerfiles :
118
103
docker :
119
104
- image : docker:17.10.0-ce-git
@@ -161,144 +146,32 @@ jobs:
161
146
- run : *modify_nipype_version
162
147
- run : *get_base_image
163
148
- run : *build_main_image_py36
164
- - run : *build_main_image_py27
165
149
- run : *_get_codecov
166
150
- run : *_download_test_data
167
151
- run : *prepare_working_directory
168
152
- run :
169
- name : Run pytests (py36)
153
+ name : Run pytests
170
154
no_output_timeout : 30m
171
155
environment : *test_environment
172
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_pytest.sh
173
- - run :
174
- name : Run pytests (py27)
175
- no_output_timeout : 30m
176
- environment : *test_environment
177
- command : bash -ux /home/circleci/nipype/.circleci/test_py2_pytest.sh
156
+ command : bash -ux /home/circleci/nipype/.circleci/test_pytest.sh
178
157
- run : *_run_codecov_coverage
179
158
- store_artifacts : *store_artifacts_kwds
180
159
- store_test_results : *store_artifacts_kwds
181
- - run :
182
- name : Build docs (py36)
183
- no_output_timeout : 30m
184
- environment : *test_environment
185
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_docs.sh
186
- - store_artifacts :
187
- path : /home/circleci/work/docs
188
160
- run :
189
161
name : Save Docker images to workspace if on master
190
162
no_output_timeout : 60m
191
163
command : |
192
164
if [ "$CIRCLE_BRANCH" = "master" -a -z "$CIRCLE_PULL_REQUEST" ]; then
193
165
docker save nipype/nipype:base \
194
166
nipype/nipype:latest \
195
- nipype/nipype:py27 \
196
- nipype/nipype:py36 | gzip -1 > /tmp/docker/nipype-base-latest-py36-py27.tar.gz \
197
- && du -h /tmp/docker/nipype-base-latest-py36-py27.tar.gz
167
+ nipype/nipype:py36 | gzip -1 > /tmp/docker/nipype-base-latest-py36.tar.gz \
168
+ && du -h /tmp/docker/nipype-base-latest-py36.tar.gz
198
169
fi
199
170
- persist_to_workspace :
200
171
root : /tmp
201
172
paths :
202
173
- docker
203
174
204
- test_py3_fmri_fsl_spm :
205
- machine : *machine_kwds
206
- working_directory : /home/circleci/nipype
207
- steps :
208
- - checkout :
209
- path : /home/circleci/nipype
210
- - attach_workspace :
211
- at : /tmp
212
- - run : *set_pr_number
213
- - run : *generate_dockerfiles
214
- - run : *modify_nipype_version
215
- - run : *get_base_image
216
- - run : *build_main_image_py36
217
- - run : *_get_codecov
218
- - run : *_download_test_data
219
- - run : *prepare_working_directory
220
- - run :
221
- name : Run FSL reuse pipeline (py36)
222
- no_output_timeout : 40m
223
- environment : *test_environment
224
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_fsl_reuse_linear_l1.sh
225
- - run :
226
- name : Run SPM test workflow - 3D inputs (py36)
227
- no_output_timeout : 40m
228
- environment : *test_environment
229
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_spm_linear_3d.sh
230
- - run :
231
- name : Run SPM test workflow - 4D inputs (py36)
232
- no_output_timeout : 40m
233
- environment : *test_environment
234
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_spm_linear_4d.sh
235
- - run : *_run_codecov_smoke
236
- - store_artifacts : *store_artifacts_kwds
237
-
238
- test_py3_fmri_spm_dartel_multiproc :
239
- machine : *machine_kwds
240
- working_directory : /home/circleci/nipype
241
- steps :
242
- - checkout :
243
- path : /home/circleci/nipype
244
- - attach_workspace :
245
- at : /tmp
246
- - run : *set_pr_number
247
- - run : *generate_dockerfiles
248
- - run : *modify_nipype_version
249
- - run : *get_base_image
250
- - run : *build_main_image_py36
251
- - run : *_get_codecov
252
- - run : *_download_test_data
253
- - run : *prepare_working_directory
254
- - run :
255
- name : Run SPM DARTEL Level 1 pipeline (py36)
256
- no_output_timeout : 1h
257
- environment : *test_environment
258
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_spm_dartel_multiproc_l1.sh
259
- - run :
260
- name : Run SPM DARTEL Level 2 pipeline (py36)
261
- no_output_timeout : 30m
262
- environment : *test_environment
263
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_spm_dartel_multiproc_l2.sh
264
- - run : *_run_codecov_smoke
265
- - store_artifacts : *store_artifacts_kwds
266
-
267
- test_fmri_spm_nested_fsl_feeds :
268
- machine : *machine_kwds
269
- working_directory : /home/circleci/nipype
270
- steps :
271
- - checkout :
272
- path : /home/circleci/nipype
273
- - attach_workspace :
274
- at : /tmp
275
- - run : *set_pr_number
276
- - run : *generate_dockerfiles
277
- - run : *modify_nipype_version
278
- - run : *get_base_image
279
- - run : *build_main_image_py36
280
- - run : *build_main_image_py27
281
- - run : *_get_codecov
282
- - run : *_download_test_data
283
- - run : *prepare_working_directory
284
- - run :
285
- name : Run SPM Nested Level 1 pipeline (py36)
286
- no_output_timeout : 1h
287
- environment : *test_environment
288
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_spm_nested_multiproc_l1.sh
289
- - run :
290
- name : Run SPM Nested Level 2 pipeline (py27)
291
- no_output_timeout : 30m
292
- environment : *test_environment
293
- command : bash -ux /home/circleci/nipype/.circleci/test_py2_fmri_spm_nested_multiproc_l2.sh
294
- - run :
295
- name : Run FSL FEEDS pipeline (py36)
296
- no_output_timeout : 40m
297
- environment : *test_environment
298
- command : bash -ux /home/circleci/nipype/.circleci/test_py3_fmri_fsl_feeds_linear_l1.sh
299
- - run : *_run_codecov_smoke
300
- - store_artifacts : *store_artifacts_kwds
301
-
302
175
deploy_dockerhub :
303
176
docker :
304
177
- image : docker:17.10.0-ce-git
@@ -310,7 +183,7 @@ jobs:
310
183
name : Load saved Docker images.
311
184
no_output_timeout : 60m
312
185
command : |
313
- docker load < /tmp/docker/nipype-base-latest-py36-py27 .tar.gz
186
+ docker load < /tmp/docker/nipype-base-latest-py36.tar.gz
314
187
- run :
315
188
name : Push to DockerHub
316
189
no_output_timeout : 120m
@@ -319,7 +192,6 @@ jobs:
319
192
docker push nipype/nipype:base
320
193
docker push nipype/nipype:latest
321
194
docker push nipype/nipype:py36
322
- docker push nipype/nipype:py27
323
195
- run :
324
196
name : Move pruned Dockerfile to /tmp/docker/cache directory
325
197
command : |
@@ -343,30 +215,20 @@ jobs:
343
215
pip install --upgrade pip twine future wheel readme_renderer setuptools
344
216
python setup.py sdist bdist_wheel
345
217
twine check dist/*
346
- - run :
347
- name : Validate Python 2 installation
348
- command : |
349
- pyenv local 2.7.12
350
- pip install --upgrade pip
351
- pip install dist/nipype-*-py2.py3-none-any.whl
352
- # Futures should install in Python 2
353
- pip show futures 2>/dev/null | grep "Name: futures"
354
218
- run :
355
219
name : Validate Python 3 installation
356
220
command : |
357
221
pyenv local 3.6.5
358
222
pip install --upgrade pip
359
- pip install dist/nipype-*-py2.py3-none-any.whl
360
- # Futures should not install in Python 3
361
- test $(pip show futures 2>/dev/null | wc -l) = "0"
223
+ pip install dist/nipype-*-py3-none-any.whl
362
224
- run :
363
225
name : Validate Python 3.7 installation
364
226
command : |
365
227
pyenv local 3.7.0
366
228
pip install --upgrade pip
367
229
# Pre-install a version of numpy that will not pass
368
230
pip install numpy==1.15.0
369
- pip install dist/nipype-*-py2. py3-none-any.whl
231
+ pip install dist/nipype-*-py3-none-any.whl
370
232
# Numpy should be upgraded to >= 1.15.3
371
233
test "$(pip show numpy | grep Version)" \> "Version: 1.15.2"
372
234
- run :
@@ -390,7 +252,7 @@ jobs:
390
252
name : Deploy to PyPI
391
253
command : |
392
254
pyenv local 3.6.5
393
- pip install --upgrade twine future wheel readme_renderer setuptools
255
+ pip install --upgrade twine wheel readme_renderer setuptools
394
256
python setup.py check -r -s
395
257
python setup.py sdist bdist_wheel
396
258
twine upload dist/*
@@ -427,44 +289,72 @@ jobs:
427
289
ssh-add ~/.ssh/id_ed25519
428
290
/home/circleci/nipype/tools/feedstock.sh
429
291
292
+ build_docs :
293
+ docker :
294
+ - image : python:3.7.4
295
+ working_directory : /tmp/src/nipype
296
+ environment :
297
+ - FSLOUTPUTTYPE : ' NIFTI'
298
+ steps :
299
+ - checkout
300
+ - run :
301
+ name : Check Python version and upgrade pip
302
+ command : |
303
+ python --version
304
+ python -m pip install -U pip
305
+ - run :
306
+ name : Install graphviz
307
+ command : |
308
+ apt-get update
309
+ apt-get install -y graphviz
310
+ - run :
311
+ name : Install Requirements (may contain pinned versions)
312
+ command : python -m pip install -r doc/requirements.txt
313
+ - run :
314
+ name : Install NiPype
315
+ command : python -m pip install ".[doc]"
316
+ - run :
317
+ name : Build documentation
318
+ command : make -C doc html
319
+ - store_artifacts :
320
+ path : /tmp/src/nipype/doc/_build/html
321
+
430
322
workflows :
431
323
version : 2
432
324
build_test_deploy :
433
325
jobs :
326
+ - build_docs :
327
+ filters :
328
+ tags :
329
+ only : /.*/
434
330
- pypi_precheck :
435
331
filters :
436
332
branches :
437
- only : /rel\/.*/
333
+ only : /( rel|dev) \/.*/
438
334
tags :
439
335
only : /.*/
440
336
- compare_base_dockerfiles :
441
337
filters :
338
+ branches :
339
+ ignore :
340
+ - /docs?\/.*/
442
341
tags :
443
342
only : /.*/
444
343
- test_pytest :
445
344
filters :
345
+ branches :
346
+ ignore :
347
+ - /docs?\/.*/
446
348
tags :
447
349
only : /.*/
448
350
requires :
449
351
- compare_base_dockerfiles
450
- - test_py3_fmri_fsl_spm :
451
- requires :
452
- - compare_base_dockerfiles
453
- - test_py3_fmri_spm_dartel_multiproc :
454
- requires :
455
- - compare_base_dockerfiles
456
- - test_fmri_spm_nested_fsl_feeds :
457
- requires :
458
- - compare_base_dockerfiles
459
352
- deploy_dockerhub :
460
353
filters :
461
354
branches :
462
355
only : master
463
356
requires :
464
357
- test_pytest
465
- - test_fmri_spm_nested_fsl_feeds
466
- - test_py3_fmri_fsl_spm
467
- - test_py3_fmri_spm_dartel_multiproc
468
358
- deploy_pypi :
469
359
filters :
470
360
branches :
0 commit comments