@@ -56,20 +56,6 @@ _build_main_image_py36: &build_main_image_py36
5656 --build-arg VCS_REF="$(git rev-parse --short HEAD)" \
5757 --build-arg VERSION="${CIRCLE_TAG}" /home/circleci/nipype
5858
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-
7359_download_test_data : &_download_test_data
7460 name : Download test data
7561 no_output_timeout : 20m
@@ -113,7 +99,6 @@ _run_codecov_smoke: &_run_codecov_smoke
11399
114100version : 2
115101jobs :
116-
117102 compare_base_dockerfiles :
118103 docker :
119104 - image : docker:17.10.0-ce-git
@@ -161,144 +146,32 @@ jobs:
161146 - run : *modify_nipype_version
162147 - run : *get_base_image
163148 - run : *build_main_image_py36
164- - run : *build_main_image_py27
165149 - run : *_get_codecov
166150 - run : *_download_test_data
167151 - run : *prepare_working_directory
168152 - run :
169- name : Run pytests (py36)
153+ name : Run pytests
170154 no_output_timeout : 30m
171155 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
178157 - run : *_run_codecov_coverage
179158 - store_artifacts : *store_artifacts_kwds
180159 - 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
188160 - run :
189161 name : Save Docker images to workspace if on master
190162 no_output_timeout : 60m
191163 command : |
192164 if [ "$CIRCLE_BRANCH" = "master" -a -z "$CIRCLE_PULL_REQUEST" ]; then
193165 docker save nipype/nipype:base \
194166 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
198169 fi
199170 - persist_to_workspace :
200171 root : /tmp
201172 paths :
202173 - docker
203174
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-
302175 deploy_dockerhub :
303176 docker :
304177 - image : docker:17.10.0-ce-git
@@ -310,7 +183,7 @@ jobs:
310183 name : Load saved Docker images.
311184 no_output_timeout : 60m
312185 command : |
313- docker load < /tmp/docker/nipype-base-latest-py36-py27 .tar.gz
186+ docker load < /tmp/docker/nipype-base-latest-py36.tar.gz
314187 - run :
315188 name : Push to DockerHub
316189 no_output_timeout : 120m
@@ -319,7 +192,6 @@ jobs:
319192 docker push nipype/nipype:base
320193 docker push nipype/nipype:latest
321194 docker push nipype/nipype:py36
322- docker push nipype/nipype:py27
323195 - run :
324196 name : Move pruned Dockerfile to /tmp/docker/cache directory
325197 command : |
@@ -339,33 +211,24 @@ jobs:
339211 - run :
340212 name : Check pypi preconditions
341213 command : |
214+ pyenv local 3.6.5
342215 pip install --upgrade pip twine future wheel readme_renderer setuptools
343216 python setup.py sdist bdist_wheel
344217 twine check dist/*
345- - run :
346- name : Validate Python 2 installation
347- command : |
348- pyenv local 2.7.12
349- pip install --upgrade pip
350- pip install dist/nipype-*-py2.py3-none-any.whl
351- # Futures should install in Python 2
352- pip show futures 2>/dev/null | grep "Name: futures"
353218 - run :
354219 name : Validate Python 3 installation
355220 command : |
356- pyenv local 3.5.2
221+ pyenv local 3.6.5
357222 pip install --upgrade pip
358- pip install dist/nipype-*-py2.py3-none-any.whl
359- # Futures should not install in Python 3
360- test $(pip show futures 2>/dev/null | wc -l) = "0"
223+ pip install dist/nipype-*-py3-none-any.whl
361224 - run :
362225 name : Validate Python 3.7 installation
363226 command : |
364227 pyenv local 3.7.0
365228 pip install --upgrade pip
366229 # Pre-install a version of numpy that will not pass
367230 pip install numpy==1.15.0
368- pip install dist/nipype-*-py2. py3-none-any.whl
231+ pip install dist/nipype-*-py3-none-any.whl
369232 # Numpy should be upgraded to >= 1.15.3
370233 test "$(pip show numpy | grep Version)" \> "Version: 1.15.2"
371234 - run :
@@ -388,7 +251,8 @@ jobs:
388251 - run :
389252 name : Deploy to PyPI
390253 command : |
391- pip install --upgrade twine future wheel readme_renderer setuptools
254+ pyenv local 3.6.5
255+ pip install --upgrade twine wheel readme_renderer setuptools
392256 python setup.py check -r -s
393257 python setup.py sdist bdist_wheel
394258 twine upload dist/*
@@ -425,44 +289,72 @@ jobs:
425289 ssh-add ~/.ssh/id_ed25519
426290 /home/circleci/nipype/tools/feedstock.sh
427291
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+
428322workflows :
429323 version : 2
430324 build_test_deploy :
431325 jobs :
326+ - build_docs :
327+ filters :
328+ tags :
329+ only : /.*/
432330 - pypi_precheck :
433331 filters :
434332 branches :
435- only : /rel\/.*/
333+ only : /( rel|dev) \/.*/
436334 tags :
437335 only : /.*/
438336 - compare_base_dockerfiles :
439337 filters :
338+ branches :
339+ ignore :
340+ - /docs?\/.*/
440341 tags :
441342 only : /.*/
442343 - test_pytest :
443344 filters :
345+ branches :
346+ ignore :
347+ - /docs?\/.*/
444348 tags :
445349 only : /.*/
446350 requires :
447351 - compare_base_dockerfiles
448- - test_py3_fmri_fsl_spm :
449- requires :
450- - compare_base_dockerfiles
451- - test_py3_fmri_spm_dartel_multiproc :
452- requires :
453- - compare_base_dockerfiles
454- - test_fmri_spm_nested_fsl_feeds :
455- requires :
456- - compare_base_dockerfiles
457352 - deploy_dockerhub :
458353 filters :
459354 branches :
460355 only : master
461356 requires :
462357 - test_pytest
463- - test_fmri_spm_nested_fsl_feeds
464- - test_py3_fmri_fsl_spm
465- - test_py3_fmri_spm_dartel_multiproc
466358 - deploy_pypi :
467359 filters :
468360 branches :
0 commit comments