@@ -32,7 +32,7 @@ version: 2
3232jobs :
3333 build :
3434 machine :
35- image : circleci/classic:201711 -01
35+ image : circleci/classic:201808 -01
3636 working_directory : /tmp/src/niworkflows
3737 environment :
3838 TZ : " /usr/share/zoneinfo/America/Los_Angeles"
9898 get_data :
9999 machine :
100100 # Ubuntu 14.04 with Docker 17.10.0-ce
101- image : circleci/classic:201711 -01
101+ image : circleci/classic:201808 -01
102102 working_directory : /home/circleci/data
103103 steps :
104104 - restore_cache :
@@ -146,7 +146,7 @@ jobs:
146146 get_regression_data :
147147 machine :
148148 # Ubuntu 14.04 with Docker 17.10.0-ce
149- image : circleci/classic:201711 -01
149+ image : circleci/classic:201808 -01
150150 working_directory : /home/circleci/data
151151 steps :
152152 - restore_cache :
@@ -181,7 +181,7 @@ jobs:
181181
182182 test_pytest :
183183 machine :
184- image : circleci/classic:201711 -01
184+ image : circleci/classic:201808 -01
185185 working_directory : /tmp/tests
186186 steps :
187187 - attach_workspace :
@@ -267,7 +267,7 @@ jobs:
267267
268268 test_masks :
269269 machine :
270- image : circleci/classic:201711 -01
270+ image : circleci/classic:201808 -01
271271 working_directory : /tmp/masks
272272 steps :
273273 - attach_workspace :
@@ -289,58 +289,73 @@ jobs:
289289 - restore_cache :
290290 keys :
291291 - regression-v2-{{ .Revision }}
292-
293- - checkout :
294- path : /tmp/src/niworkflows
295- - run :
296- name : Set PR number
297- command : |
298- echo 'export CIRCLE_PR_NUMBER="${CIRCLE_PR_NUMBER:-${CIRCLE_PULL_REQUEST##*/}}"' >> $BASH_ENV
299- source $BASH_ENV
300- echo $CIRCLE_PR_NUMBER
301- - run :
302- name : Get codecov
303- command : python -m pip install codecov
304-
292+ - restore_cache :
293+ keys :
294+ - masks-workdir-v1-{{ .Branch }}-{{epoch}}
295+ - masks-workdir-v1-{{ .Branch }}-
296+ - masks-workdir-v1-master-
297+ - masks-workdir-v1-
305298 - run :
306299 name : Run regression tests on EPI masks
307300 no_output_timeout : 2h
308301 command : |
309- mkdir -p /tmp/masks/reports && \
310- docker run -ti --rm=false -w /src/niworkflows \
311- -e COVERAGE_FILE=/tmp/masks/.coverage \
312- -v /tmp/data:/tmp/data -v /tmp/masks:/tmp/masks \
302+ mkdir -p /tmp/masks/{ reports,workdir} && \
303+ docker run -ti -u $(id -u) -w /src/niworkflows \
304+ -e COVERAGE_FILE=/tmp/masks/reports/ .coverage \
305+ -v /tmp/data:/tmp/data -v /tmp/masks/reports :/tmp/masks/reports \
313306 -e FMRIPREP_REGRESSION_SOURCE=/tmp/data/fmriprep_bold_truncated \
314307 -e FMRIPREP_REGRESSION_TARGETS=/tmp/data/fmriprep_bold_mask \
315308 -e FMRIPREP_REGRESSION_REPORTS=/tmp/masks/reports \
309+ -e CACHED_WORK_DIRECTORY=/tmp/work -v /tmp/masks/workdir:/tmp/work \
316310 niworkflows:latest \
317- pytest --junit-xml=/tmp/masks/regression.xml \
318- --cov niworkflows --cov-report xml: /tmp/masks/coverage .xml \
311+ coverage run -p --rcfile=setup.cfg \
312+ -m pytest --junit- xml= /tmp/masks/reports/regression .xml \
319313 niworkflows/func/tests/
314+ - save_cache :
315+ key : masks-workdir-v1-{{ .Branch }}-{{ epoch }}
316+ paths :
317+ - /tmp/masks/workdir
318+ - store_artifacts :
319+ path : /tmp/masks/reports
320+ - store_test_results :
321+ path : /tmp/masks/reports
320322
323+ - run :
324+ name : Coverage preparation
325+ command : |
326+ docker run -ti -u $(id -u) -w /tmp/masks/reports \
327+ -e COVERAGE_FILE=/tmp/masks/reports/.coverage \
328+ -v /tmp/masks/reports:/tmp/masks/reports \
329+ niworkflows:latest coverage combine
330+ docker run -ti -u $(id -u) -w /tmp/masks/reports \
331+ -e COVERAGE_FILE=/tmp/masks/reports/.coverage \
332+ -v /tmp/masks/reports:/tmp/masks/reports \
333+ niworkflows:latest coverage xml -o coverage.xml
334+ - checkout :
335+ path : /tmp/src/niworkflows
336+ - run :
337+ name : Get codecov
338+ command : python -m pip install codecov
321339 - run :
322340 name : Submit masks test coverage
341+ working_directory : /tmp/src/niworkflows
323342 command : |
324- python -m codecov --file /tmp/masks/coverage.xml --root /tmp/src/niworkflows \
325- --flags masks -e CIRCLE_JOB
326-
343+ cp /tmp/masks/reports/ coverage.xml .
344+ sed -i "s+/src/niworkflows+/tmp/src/niworkflows+g" coverage.xml
345+ python -m codecov --file coverage.xml --flags masks -e CIRCLE_JOB
327346 - run :
328347 name : Package new masks
329348 when : always
330349 no_output_timeout : 10m
331350 working_directory : /tmp/data
332351 command : |
333352 tar cfz /tmp/masks/fmriprep_bold_mask.tar.gz fmriprep_bold_mask/*/*.nii.gz
334-
335353 - store_artifacts :
336- path : /tmp/masks
337-
338- - store_test_results :
339- path : /tmp/masks
354+ path : /tmp/masks/fmriprep_bold_mask.tar.gz
340355
341356 test_package :
342357 machine :
343- image : circleci/classic:201711 -01
358+ image : circleci/classic:201808 -01
344359 working_directory : /tmp/src/niworkflows
345360 steps :
346361 - checkout
@@ -365,7 +380,7 @@ jobs:
365380
366381 deploy :
367382 machine :
368- image : circleci/classic:201711 -01
383+ image : circleci/classic:201808 -01
369384 working_directory : /tmp/src/niworkflows
370385 steps :
371386 - checkout
0 commit comments