@@ -170,46 +170,6 @@ jobs:
170
170
- fslicense
171
171
- src/
172
172
173
- - run :
174
- name : Check if regression data must be downloaded
175
- command : |
176
- cd /tmp/src/niworkflows
177
- set +e
178
- test_masks="$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[test[ _]?masks?\]' )$( echo $CIRCLE_BRANCH | grep -i -E '^masks?/' )"
179
- set -e
180
- if [[ "x${CIRCLE_TAG}" = "x" && "${CIRCLE_BRANCH}" != "master" && "x${test_masks}" = "x" ]]; then
181
- echo "Not a tag or master branch, not a ``masks?/`` branch, no ``[test_masks]`` label in commit message"
182
- echo "Skipping download of test data for mask regressions."
183
- circleci step halt
184
- fi
185
-
186
- - restore_cache :
187
- keys :
188
- - mask-regressions-v2-{{ .Branch }}-{{ .Revision }}-
189
- - mask-regressions-v2-{{ .Branch }}-
190
- - mask-regressions-v2-master-
191
- - mask-regressions-v2-
192
- - run :
193
- name : Setup TemplateFlow
194
- command : |
195
- python -c "from templateflow import api as tfapi; \
196
- tfapi.get('MNI152NLin2009cAsym', resolution=1, label='brain', suffix='probseg'); \
197
- tfapi.get('MNI152NLin2009cAsym', resolution=2, desc='fMRIPrep', suffix='boldref'); \
198
- tfapi.get('MNI152NLin2009cAsym', resolution=2, desc='brain', suffix='mask'); "
199
- - run :
200
- name : Install epi-references
201
- command : |
202
- if [[ ! -d epi-references ]]; then
203
- datalad install -r https://github.com/nipreps-data/epi-references.git
204
- fi
205
- datalad update -r --merge -d epi-references/
206
- datalad get -J 2 -r -d epi-references/ epi-references/*
207
- - save_cache :
208
- key : mask-regressions-v2-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
209
- paths :
210
- - /tmp/templateflow
211
- - /tmp/data/epi-references
212
-
213
173
test_pytest :
214
174
machine :
215
175
image : ubuntu-2004:202104-01
@@ -313,127 +273,6 @@ jobs:
313
273
- store_test_results :
314
274
path : /tmp/tests/summaries/
315
275
316
- test_masks :
317
- machine :
318
- image : ubuntu-2004:202104-01
319
- working_directory : /tmp/masks
320
- steps :
321
- - attach_workspace :
322
- at : /tmp
323
-
324
- - run :
325
- name : Determine whether regression tests (masks) must be executed
326
- command : |
327
- cd /tmp/src/niworkflows
328
- set +e
329
- test_masks="$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[test[ _]?masks?\]' )$( echo $CIRCLE_BRANCH | grep -i -E '^masks?/' )"
330
- set -e
331
- if [[ "x${CIRCLE_TAG}" = "x" && "${CIRCLE_BRANCH}" != "master" && "x${test_masks}" = "x" ]]; then
332
- echo "Not a tag or master branch, not a ``masks?/`` branch, no ``[test_masks]`` label in commit message"
333
- echo "Skipping download of test data for mask regressions."
334
- circleci step halt
335
- fi
336
-
337
- - restore_cache :
338
- keys :
339
- - mask-regressions-v2-{{ .Branch }}-{{ .Revision }}-
340
- - mask-regressions-v2-{{ .Branch }}-
341
-
342
- - restore_cache :
343
- keys :
344
- - build-v1-{{ .Branch }}-{{ .Revision }}
345
- - build-v1--{{ .Revision }}
346
- - build-v1-{{ .Branch }}-
347
- - build-v1-master-
348
- - build-v1-
349
- - run :
350
- name : Docker authentication
351
- command : |
352
- if [[ -n $DOCKER_PAT ]]; then
353
- echo "$DOCKER_PAT" | docker login -u $DOCKER_USER --password-stdin
354
- fi
355
- - run :
356
- name : Set up Docker registry
357
- command : |
358
- if [[ -f /tmp/images/registry.tar.gz ]]; then
359
- echo "Loading saved registry image"
360
- docker load < /tmp/images/registry.tar.gz
361
- else
362
- echo "Pulling registry image from DockerHub"
363
- docker pull registry:2
364
- mkdir -p /tmp/images
365
- docker save registry:2 | gzip > /tmp/images/registry.tar.gz
366
- fi
367
- docker run -d -p 5000:5000 --restart=always --name=registry \
368
- -v /tmp/docker:/var/lib/registry registry:2
369
- - run :
370
- name : Pull images to registry
371
- command : |
372
- docker pull localhost:5000/niworkflows
373
- docker tag localhost:5000/niworkflows niworkflows:latest
374
- - restore_cache :
375
- keys :
376
- - masks-workdir-v6-{{ .Branch }}-{{epoch}}
377
- - masks-workdir-v6-{{ .Branch }}-
378
- - masks-workdir-v6-master-
379
- - masks-workdir-v6-
380
- - run :
381
- name : Run regression tests on EPI masks
382
- no_output_timeout : 2h
383
- command : |
384
- mkdir -p /tmp/masks/{reports,workdir} && \
385
- docker run -ti -u $(id -u) -w /src/niworkflows \
386
- -v /tmp/templateflow:/templateflow \
387
- -v /tmp/data/epi-references:/data -v /tmp/masks/reports:/tmp/masks/reports \
388
- -e COVERAGE_FILE=/tmp/masks/reports/.coverage \
389
- -e TEMPLATEFLOW_HOME=/templateflow -e TEMPLATEFLOW_AUTOUPDATE=off \
390
- -e FMRIPREP_REGRESSION_SOURCE=/data \
391
- -e FMRIPREP_REGRESSION_REPORTS=/tmp/masks/reports \
392
- -e CACHED_WORK_DIRECTORY=/tmp/work -v /tmp/masks/workdir:/tmp/work \
393
- -v /tmp/fslicense/license.txt:/opt/freesurfer/license.txt:ro \
394
- niworkflows:latest \
395
- coverage run -p --rcfile=setup.cfg \
396
- -m pytest --junit-xml=/tmp/masks/reports/regression.xml \
397
- niworkflows/func/tests/
398
- - run :
399
- name : Clear reports folder & delete plot generator cache
400
- command : |
401
- pushd reports/
402
- tar cvfz fmriprep_bold_mask.tar.gz fmriprep_bold_mask/*/*.nii.gz
403
- rm -rf /tmp/masks/reports/fmriprep_bold_mask/
404
- popd
405
- find workdir/ -name "mask_diff_plot" -exec rm -rf {} +
406
- - store_artifacts :
407
- path : /tmp/masks/reports
408
- - store_test_results :
409
- path : /tmp/masks/reports
410
- - save_cache :
411
- key : masks-workdir-v6-{{ .Branch }}-{{ epoch }}
412
- paths :
413
- - /tmp/masks/workdir
414
-
415
- - run :
416
- name : Coverage preparation
417
- command : |
418
- docker run -ti -u $(id -u) -w /tmp/masks/reports \
419
- -e COVERAGE_FILE=/tmp/masks/reports/.coverage \
420
- -v /tmp/masks/reports:/tmp/masks/reports \
421
- niworkflows:latest coverage combine
422
- docker run -ti -u $(id -u) -w /tmp/masks/reports \
423
- -e COVERAGE_FILE=/tmp/masks/reports/.coverage \
424
- -v /tmp/masks/reports:/tmp/masks/reports \
425
- niworkflows:latest coverage xml -o coverage.xml
426
- - run :
427
- name : Get codecov
428
- command : python -m pip install codecov
429
- - run :
430
- name : Submit masks test coverage
431
- working_directory : /tmp/src/niworkflows
432
- command : |
433
- cp /tmp/masks/reports/coverage.xml .
434
- sed -i "s+/src/niworkflows+/tmp/src/niworkflows+g" coverage.xml
435
- python -m codecov --file coverage.xml --flags masks -e CIRCLE_JOB
436
-
437
276
test_package :
438
277
docker :
439
278
- image : circleci/python:3.8.5
@@ -593,14 +432,6 @@ workflows:
593
432
tags :
594
433
only : /.*/
595
434
596
- - test_masks :
597
- requires :
598
- - build
599
- - get_data
600
- filters :
601
- tags :
602
- ignore : /.*/
603
-
604
435
- deploy_pypi :
605
436
requires :
606
437
- test_pytest
0 commit comments