@@ -126,8 +126,8 @@ jobs:
126
126
steps :
127
127
- restore_cache :
128
128
keys :
129
- - data-v0 -{{ .Revision }}
130
- - data-v0 -
129
+ - data-v1 -{{ .Revision }}
130
+ - data-v1 -
131
131
- run :
132
132
name : Get test data from THP002
133
133
command : |
@@ -142,19 +142,20 @@ jobs:
142
142
- run :
143
143
name : Get FreeSurfer derivatives for THP002
144
144
command : |
145
- if [[ ! -d /tmp/THP002/derivatives/freesurfer ]]; then
146
- mkdir -p /tmp/THP002/derivatives
145
+ if [[ ! -d /tmp/data/ THP002/derivatives/freesurfer ]]; then
146
+ mkdir -p /tmp/data/ THP002/derivatives
147
147
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
148
148
-O THP002_derivatives_freesurfer.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5d7d87ce7483ec0017530cc9"
149
- tar xvzf THP002_derivatives_freesurfer.tar.gz -C /tmp/THP002/derivatives
149
+ tar xvzf THP002_derivatives_freesurfer.tar.gz -C /tmp/data/THP002/derivatives
150
+ mv /tmp/data/THP002/derivatives/freesurfer /tmp/data/THP002/derivatives/freesurfer-6.0.1
150
151
else
151
152
echo "FreeSurfer derivatives of THP002 were cached"
152
153
fi
153
154
- run :
154
- name : Get test data from DS001771_sub-36
155
+ name : Get test data (ds001771)
155
156
command : |
156
157
mkdir -p /tmp/data
157
- if [[ ! -d /tmp/data/DS001771 ]]; then
158
+ if [[ ! -d /tmp/data/ds001771 ]]; then
158
159
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
159
160
-O ds001771_sub-36.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5e1f89d36822bd01f0febbdc"
160
161
tar xvzf ds001771_sub-36.tar.gz -C /tmp/data/
@@ -164,13 +165,14 @@ jobs:
164
165
- run :
165
166
name : Get FreeSurfer derivatives for ds001771_sub-36
166
167
command : |
167
- if [[ ! -d /tmp/DS001771/ derivatives/freesurfer ]]; then
168
- mkdir -p /tmp/DS001771 /derivatives
168
+ if [[ ! -d /tmp/data/ds001771/ derivatives/freesurfer-6.0.1 ]]; then
169
+ mkdir -p /tmp/data/ds001771 /derivatives
169
170
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
170
171
-O ds001771_sub-36_derivatives_freesurfer.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5e21e74fedceab00ad82e047"
171
- tar xvzf ds001771_sub-36_derivatives_freesurfer.tar.gz -C /tmp/DS001771/derivatives
172
+ tar xvzf ds001771_sub-36_derivatives_freesurfer.tar.gz -C /tmp/data/ds001771/derivatives
173
+ mv /tmp/data/ds001771/derivatives/freesurfer /tmp/data/ds001771/derivatives/freesurfer-6.0.1
172
174
else
173
- echo "FreeSurfer derivatives of DS001771 were cached"
175
+ echo "FreeSurfer derivatives of ds001771 were cached"
174
176
fi
175
177
- run :
176
178
name : Store FreeSurfer license file
@@ -191,10 +193,9 @@ jobs:
191
193
- fslicense
192
194
- config/nipype.cfg
193
195
- save_cache :
194
- key : data-v0 -{{ .Revision }}-{{ epoch }}
196
+ key : data-v1 -{{ .Revision }}-{{ epoch }}
195
197
paths :
196
198
- /tmp/data
197
- - /tmp/THP002/derivatives/freesurfer
198
199
199
200
THP002 :
200
201
machine :
@@ -221,7 +222,7 @@ jobs:
221
222
at : /tmp
222
223
- restore_cache :
223
224
keys :
224
- - data-v0 -{{ .Revision }}
225
+ - data-v1 -{{ .Revision }}
225
226
- restore_cache :
226
227
keys :
227
228
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -241,27 +242,24 @@ jobs:
241
242
docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
242
243
- restore_cache :
243
244
keys :
244
- - THP002-anat-v00 -{{ .Branch }}-{{ .Revision }}
245
- - THP002-anat-v00 -{{ .Branch }}
246
- - THP002-anat-v00 -master
247
- - THP002-anat-v00 -
245
+ - THP002-anat-v01 -{{ .Branch }}-{{ .Revision }}
246
+ - THP002-anat-v01 -{{ .Branch }}
247
+ - THP002-anat-v01 -master
248
+ - THP002-anat-v01 -
248
249
- run :
249
250
name : Run anatomical workflow on THP002
250
251
no_output_timeout : 2h
251
252
command : |
252
253
mkdir -p /tmp/THP002/work /tmp/THP002/derivatives
253
- sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/derivatives && \
254
- sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/derivatives
255
- sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/work && \
256
- sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/work
257
254
docker run -e FS_LICENSE=$FS_LICENSE --rm \
258
255
-v /tmp/data/THP002:/data \
259
256
-v /tmp/THP002/derivatives:/out \
260
257
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
261
258
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
262
259
-v /tmp/THP002/work:/work \
263
260
--user $(id -u):$(id -g) \
264
- nipreps/dmriprep:latest /data /out participant -vv --sloppy --anat-only \
261
+ nipreps/dmriprep:latest /data /out participant -vv \
262
+ --fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
265
263
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
266
264
- run :
267
265
name : Clean-up after anatomical run
@@ -270,26 +268,23 @@ jobs:
270
268
rm -rf /tmp/THP002/work/reportlets
271
269
when : on_success
272
270
- save_cache :
273
- key : THP002-anat-v00 -{{ .Branch }}-{{ .Revision }}-{{ epoch }}
271
+ key : THP002-anat-v01 -{{ .Branch }}-{{ .Revision }}-{{ epoch }}
274
272
paths :
275
273
- /tmp/THP002/work
276
274
- run :
277
275
name : Run full diffusion workflow on THP002
278
276
no_output_timeout : 2h
279
277
command : |
280
278
mkdir -p /tmp/THP002/work /tmp/THP002/derivatives
281
- sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/derivatives && \
282
- sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/derivatives
283
- sudo setfacl -d -m group:$(id -gn):rwx /tmp/THP002/work && \
284
- sudo setfacl -m group:$(id -gn):rwx /tmp/THP002/work
285
279
docker run -e FS_LICENSE=$FS_LICENSE --rm \
286
280
-v /tmp/data/THP002:/data \
287
281
-v /tmp/THP002/derivatives:/out \
288
282
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
289
283
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
290
284
-v /tmp/THP002/work:/work \
291
285
--user $(id -u):$(id -g) \
292
- nipreps/dmriprep:latest /data /out participant -vv --sloppy \
286
+ nipreps/dmriprep:latest /data /out participant -vv \
287
+ --fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
293
288
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
294
289
- store_artifacts :
295
290
path : /tmp/THP002/derivatives/dmriprep
@@ -302,14 +297,119 @@ jobs:
302
297
name : Clean working directory
303
298
when : on_fail
304
299
command : |
305
- sudo chown $(id -un):$(id -gn) -R /tmp/THP002
306
300
find /tmp/THP002/work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
307
301
-exec sh -c 'rm -f {}; touch {}' \;
308
302
find /tmp/THP002/work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
309
303
-exec sh -c 'rm -f {}; touch {}' \;
310
304
- store_artifacts :
311
305
path : /tmp/THP002/work
312
306
307
+ ds001771 :
308
+ machine :
309
+ image : circleci/classic:201711-01
310
+ working_directory : /tmp/ds001771
311
+ environment :
312
+ - FS_LICENSE : /tmp/fslicense/license.txt
313
+ steps :
314
+ - checkout :
315
+ path : /home/circleci/src/dmriprep
316
+ - run :
317
+ name : Check whether build should be skipped
318
+ command : |
319
+ cd /home/circleci/src/dmriprep
320
+ if [[ "$( git log --format='format:%s' -n 1 $CIRCLE_SHA1 | grep -i -E '^docs?(\(\w+\))?:' )" != "" ]]; then
321
+ echo "Only docs build"
322
+ circleci step halt
323
+ fi
324
+ if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?ds001771\]' )" != "" ]]; then
325
+ echo "Skipping ds001771 build"
326
+ circleci step halt
327
+ fi
328
+ - attach_workspace :
329
+ at : /tmp
330
+ - restore_cache :
331
+ keys :
332
+ - data-v1-{{ .Revision }}
333
+ - restore_cache :
334
+ keys :
335
+ - build-v1-{{ .Branch }}-{{ epoch }}
336
+ - build-v1-{{ .Branch }}-
337
+ - build-v1-
338
+ paths :
339
+ - /tmp/docker
340
+ - run :
341
+ name : Set-up a Docker registry
342
+ command : |
343
+ docker run -d -p 5000:5000 --restart=always --name=registry \
344
+ -v /tmp/docker:/var/lib/registry registry:2
345
+ - run :
346
+ name : Pull images from local registry
347
+ command : |
348
+ docker pull localhost:5000/dmriprep
349
+ docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
350
+ - restore_cache :
351
+ keys :
352
+ - ds001771-anat-v00-{{ .Branch }}-{{ .Revision }}
353
+ - ds001771-anat-v00-{{ .Branch }}
354
+ - ds001771-anat-v00-master
355
+ - ds001771-anat-v00-
356
+ - run :
357
+ name : Run anatomical workflow on ds001771
358
+ no_output_timeout : 2h
359
+ command : |
360
+ mkdir -p /tmp/ds001771/{work,derivatives}
361
+ docker run -e FS_LICENSE=$FS_LICENSE --rm \
362
+ -v /tmp/data/ds001771:/data \
363
+ -v /tmp/ds001771/derivatives:/out \
364
+ -v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
365
+ -v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
366
+ -v /tmp/ds001771/work:/work \
367
+ --user $(id -u):$(id -g) \
368
+ nipreps/dmriprep:latest /data /out participant -vv \
369
+ --fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
370
+ --notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
371
+ - run :
372
+ name : Clean-up after anatomical run
373
+ command : |
374
+ rm -rf /tmp/ds001771/work/dmriprep_wf/fsdir*
375
+ rm -rf /tmp/ds001771/work/reportlets
376
+ when : on_success
377
+ - save_cache :
378
+ key : ds001771-anat-v00-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
379
+ paths :
380
+ - /tmp/ds001771/work
381
+ - run :
382
+ name : Run full diffusion workflow on ds001771
383
+ no_output_timeout : 2h
384
+ command : |
385
+ docker run -e FS_LICENSE=$FS_LICENSE --rm \
386
+ -v /tmp/data/ds001771:/data \
387
+ -v /tmp/ds001771/derivatives:/out \
388
+ -v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
389
+ -v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
390
+ -v /tmp/ds001771/work:/work \
391
+ --user $(id -u):$(id -g) \
392
+ nipreps/dmriprep:latest /data /out participant -vv \
393
+ --fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
394
+ --notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
395
+ - store_artifacts :
396
+ path : /tmp/ds001771/derivatives/dmriprep
397
+ - run :
398
+ name : Clean working directory
399
+ when : on_success
400
+ command : |
401
+ sudo rm -rf /tmp/ds001771/work
402
+ - run :
403
+ name : Clean working directory
404
+ when : on_fail
405
+ command : |
406
+ sudo chown $(id -un):$(id -gn) -R /tmp/ds001771
407
+ find /tmp/ds001771/work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
408
+ -exec sh -c 'rm -f {}; touch {}' \;
409
+ find /tmp/ds001771/work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
410
+ -exec sh -c 'rm -f {}; touch {}' \;
411
+ - store_artifacts :
412
+ path : /tmp/ds001771/work
313
413
314
414
deploy_docker_patches :
315
415
machine :
@@ -451,7 +551,7 @@ jobs:
451
551
which dmriprep | grep sdist\\/bin
452
552
INSTALLED_VERSION=$(dmriprep --version)
453
553
INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'}
454
- INSTALLED_VERSION=${INSTALLED_VERSION#*"dmriprep v"}
554
+ INSTALLED_VERSION=${INSTALLED_VERSION#*"dMRIPrep v"}
455
555
echo "VERSION: \"$THISVERSION\""
456
556
echo "INSTALLED: \"$INSTALLED_VERSION\""
457
557
test "$INSTALLED_VERSION" = "$THISVERSION"
@@ -470,7 +570,7 @@ jobs:
470
570
which dmriprep | grep wheel\\/bin
471
571
INSTALLED_VERSION=$(dmriprep --version)
472
572
INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'}
473
- INSTALLED_VERSION=${INSTALLED_VERSION#*"dmriprep v"}
573
+ INSTALLED_VERSION=${INSTALLED_VERSION#*"dMRIPrep v"}
474
574
echo "VERSION: \"$THISVERSION\""
475
575
echo "INSTALLED: \"$INSTALLED_VERSION\""
476
576
test "$INSTALLED_VERSION" = "$THISVERSION"
@@ -604,6 +704,18 @@ workflows:
604
704
- /docker\/.*/
605
705
tags :
606
706
only : /.*/
707
+ - ds001771 :
708
+ requires :
709
+ - build
710
+ - get_data
711
+ filters :
712
+ branches :
713
+ ignore :
714
+ - /docs?\/.*/
715
+ - /tests?\/.*/
716
+ - /docker\/.*/
717
+ tags :
718
+ only : /.*/
607
719
- test_deploy_pypi :
608
720
filters :
609
721
branches :
@@ -655,6 +767,7 @@ workflows:
655
767
ignore :
656
768
- /tests?\/.*/
657
769
- /THP002\/.*/
770
+ - /ds001771\/.*/
658
771
tags :
659
772
only : /.*/
660
773
0 commit comments