Skip to content

Commit f11c36b

Browse files
committed
maint: Move test data to a full-datalad settings
1 parent 03ef691 commit f11c36b

File tree

1 file changed

+108
-85
lines changed

1 file changed

+108
-85
lines changed

.circleci/config.yml

Lines changed: 108 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -119,72 +119,84 @@ jobs:
119119
- src/dmriprep
120120

121121
get_data:
122-
machine:
123-
# Ubuntu 14.04 with Docker 17.10.0-ce
124-
image: circleci/classic:201711-01
125-
working_directory: /home/circleci/data
122+
docker:
123+
- image: continuumio/miniconda3:4.9.2-alpine
124+
working_directory: /tmp/data
125+
environment:
126+
- TEMPLATEFLOW_HOME: /tmp/templateflow
126127
steps:
127128
- restore_cache:
128129
keys:
129-
- data-thp-v1-{{ .Revision }}
130-
- data-thp-v1-
130+
- env-v1-{{ .Branch }}-
131+
- env-v1-master-
132+
- env-v1-
131133
- run:
132-
name: Get test data from THP002
134+
name: Setup git-annex & DataLad
133135
command: |
134-
mkdir -p /tmp/data
135-
if [[ ! -d /tmp/data/THP002 ]]; then
136-
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
137-
-O THP002_data.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5d7d89fc9defac0019179fdf"
138-
tar xvzf THP002_data.tar.gz -C /tmp/data/
139-
else
140-
echo "Dataset THP002 was cached"
141-
fi
136+
conda install -y -c anaconda -c conda-forge git-annex datalad
137+
python -m pip install --no-cache-dir -U datalad-osf
138+
git config --global user.name 'NiPreps Bot'
139+
git config --global user.email '[email protected]'
140+
142141
- run:
143-
name: Get FreeSurfer derivatives for THP002
142+
name: Setup TemplateFlow
144143
command: |
145-
if [[ ! -d /tmp/data/THP002/derivatives/freesurfer-6.0.1 ]]; then
146-
mkdir -p /tmp/data/THP002/derivatives
147-
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
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/data/THP002/derivatives
150-
mv /tmp/data/THP002/derivatives/freesurfer /tmp/data/THP002/derivatives/freesurfer-6.0.1
151-
else
152-
echo "FreeSurfer derivatives of THP002 were cached"
153-
fi
144+
python -m pip install --no-cache-dir -U templateflow
145+
python -c "from templateflow import api as tfapi; \
146+
tfapi.get('OASIS30ANTs', resolution=1, desc=None, suffix='T1w'); \
147+
tfapi.get('OASIS30ANTs', resolution=1, desc='BrainCerebellumExtraction', suffix='mask'); "
148+
154149
- save_cache:
155-
key: data-thp-v1-{{ .Revision }}-{{ epoch }}
156-
paths:
157-
- /tmp/data/THP002
150+
key: env-v1-{{ .Branch }}-{{ .BuildNum }}
151+
paths:
152+
- /tmp/templateflow
153+
- /opt/conda
154+
158155
- restore_cache:
159156
keys:
160-
- data-ds001771-v1-{{ .Revision }}
161-
- data-ds001771-v1-
162-
- run:
163-
name: Get test data (ds001771)
164-
command: |
165-
mkdir -p /tmp/data
166-
if [[ ! -d /tmp/data/ds001771 ]]; then
167-
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
168-
-O ds001771_sub-36.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5e1f89d36822bd01f0febbdc"
169-
tar xvzf ds001771_sub-36.tar.gz -C /tmp/data/
170-
else
171-
echo "Dataset ds001771_sub-36 was cached"
172-
fi
173-
- run:
174-
name: Get anatomical derivatives for ds001771
175-
command: |
176-
if [[ ! -d /tmp/data/ds001771/derivatives ]]; then
177-
mkdir -p /tmp/data/ds001771/derivatives
178-
wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
179-
-O ds001771-derivs.tar.gz "https://files.osf.io/v1/resources/8k95s/providers/osfstorage/5eb251fba2199500215d1dc3"
180-
tar xvzf ds001771-derivs.tar.gz -C /tmp/data/ds001771/
181-
else
182-
echo "Anatomical derivatives of ds001771 were cached"
183-
fi
157+
- data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-
158+
- data-ds001771-v3-{{ .Branch }}-
159+
- data-ds001771-v3-master-
160+
- data-ds001771-v3-
161+
- run:
162+
name: Install ds001771
163+
command: |
164+
datalad install -r https://github.com/nipreps-data/ds001771.git
165+
datalad update -r --merge -d ds001771/
166+
datalad get -r -d ds001771/ ds001771/sub-36/anat/*
167+
datalad get -r -d ds001771/ ds001771/sub-36/dwi/*
168+
datalad get -r -d ds001771/ ds001771/sub-36/fmap/*
169+
datalad get -r -d ds001771/derivatives/ ds001771/derivatives/smriprep-0.6.0/*
170+
datalad get -r -d ds001771/derivatives/ ds001771/derivatives/freesurfer-6.0.1/sub-36/mri/*
171+
datalad get -r -d ds001771/derivatives/ ds001771/derivatives/freesurfer-6.0.1/sub-36/surf/lh.white
172+
datalad get -r -d ds001771/derivatives/ ds001771/derivatives/freesurfer-6.0.1/sub-36/surf/rh.white
173+
184174
- save_cache:
185-
key: data-ds001771-v1-{{ .Revision }}-{{ epoch }}
186-
paths:
175+
key: data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
176+
paths:
187177
- /tmp/data/ds001771
178+
179+
- restore_cache:
180+
keys:
181+
- data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-
182+
- data-ds000206-v1-{{ .Branch }}-
183+
- data-ds000206-v1-master-
184+
- data-ds000206-v1-
185+
- run:
186+
name: Install ds000206
187+
command: |
188+
datalad install -r https://github.com/nipreps-data/ds000206.git
189+
datalad update -r --merge -d ds000206/
190+
datalad get -r -d ds000206/ ds000206/sub-05/*
191+
datalad get -r -d ds000206/derivatives/ ds000206/derivatives/freesurfer-6.0.1/sub-05/mri/*
192+
datalad get -r -d ds000206/derivatives/ ds000206/derivatives/freesurfer-6.0.1/sub-05/surf/lh.white
193+
datalad get -r -d ds000206/derivatives/ ds000206/derivatives/freesurfer-6.0.1/sub-05/surf/rh.white
194+
195+
- save_cache:
196+
key: data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
197+
paths:
198+
- /tmp/data/ds000206
199+
188200
- run:
189201
name: Store FreeSurfer license file
190202
command: |
@@ -204,10 +216,10 @@ jobs:
204216
- fslicense
205217
- config/nipype.cfg
206218

207-
THP002:
219+
ds000206:
208220
machine:
209221
image: circleci/classic:201711-01
210-
working_directory: /tmp/THP002
222+
working_directory: /tmp/ds000206
211223
environment:
212224
- FS_LICENSE: /tmp/fslicense/license.txt
213225
steps:
@@ -221,15 +233,19 @@ jobs:
221233
echo "Only docs build"
222234
circleci step halt
223235
fi
224-
if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?THP002\]' )" != "" ]]; then
225-
echo "Skipping THP002 build"
236+
if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?ds000206\]' )" != "" ]]; then
237+
echo "Skipping ds000206 build"
226238
circleci step halt
227239
fi
228240
- attach_workspace:
229241
at: /tmp
230242
- restore_cache:
231243
keys:
232-
- data-thp-v1-{{ .Revision }}
244+
- data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
245+
- data-ds000206-v1-{{ .Branch }}-{{ .Revision }}-
246+
- data-ds000206-v1-{{ .Branch }}-
247+
- data-ds000206-v1-master-
248+
- data-ds000206-v1-
233249
- restore_cache:
234250
keys:
235251
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -249,67 +265,69 @@ jobs:
249265
docker tag localhost:5000/dmriprep nipreps/dmriprep:latest
250266
- restore_cache:
251267
keys:
252-
- THP002-anat-v01-{{ .Branch }}-{{ .Revision }}
253-
- THP002-anat-v01-{{ .Branch }}
254-
- THP002-anat-v01-master
255-
- THP002-anat-v01-
268+
- ds000206-anat-v01-{{ .Branch }}-{{ .Revision }}
269+
- ds000206-anat-v01-{{ .Branch }}
270+
- ds000206-anat-v01-master
271+
- ds000206-anat-v01-
256272
- run:
257-
name: Run anatomical workflow on THP002
273+
name: Run anatomical workflow on ds000206
258274
no_output_timeout: 2h
259275
command: |
260-
mkdir -p /tmp/THP002/work /tmp/THP002/derivatives
276+
mkdir -p /tmp/ds000206/work /tmp/ds000206/derivatives
261277
docker run -e FS_LICENSE=$FS_LICENSE --rm \
262-
-v /tmp/data/THP002:/data \
263-
-v /tmp/THP002/derivatives:/out \
278+
-v /tmp/data/ds000206:/data \
279+
-v /tmp/ds000206/derivatives:/out \
264280
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
265281
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
266-
-v /tmp/THP002/work:/work \
282+
-v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
283+
-v /tmp/ds000206/work:/work \
267284
--user $(id -u):$(id -g) \
268285
nipreps/dmriprep:latest /data /out participant -vv \
269286
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy --anat-only \
270287
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
271288
- run:
272289
name: Clean-up after anatomical run
273290
command: |
274-
rm -rf /tmp/THP002/work/dmriprep_wf/fsdir*
275-
rm -rf /tmp/THP002/work/reportlets
291+
rm -rf /tmp/ds000206/work/dmriprep_wf/fsdir*
292+
rm -rf /tmp/ds000206/work/reportlets
276293
when: on_success
277294
- save_cache:
278-
key: THP002-anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
295+
key: ds000206-anat-v01-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
279296
paths:
280-
- /tmp/THP002/work
297+
- /tmp/ds000206/work
281298
- run:
282-
name: Run full diffusion workflow on THP002
299+
name: Run full diffusion workflow on ds000206
283300
no_output_timeout: 2h
284301
command: |
285-
mkdir -p /tmp/THP002/work /tmp/THP002/derivatives
302+
mkdir -p /tmp/ds000206/work /tmp/ds000206/derivatives
286303
docker run -e FS_LICENSE=$FS_LICENSE --rm \
287-
-v /tmp/data/THP002:/data \
288-
-v /tmp/THP002/derivatives:/out \
304+
-v /tmp/data/ds000206:/data \
305+
-v /tmp/ds000206/derivatives:/out \
289306
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
290307
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
291-
-v /tmp/THP002/work:/work \
308+
-v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
309+
-v /tmp/ds000206/work:/work \
292310
--user $(id -u):$(id -g) \
293311
nipreps/dmriprep:latest /data /out participant -vv \
294312
--fs-subjects-dir /data/derivatives/freesurfer-6.0.1 --sloppy \
295313
--notrack --skip-bids-validation -w /work --omp-nthreads 2 --nprocs 2
296314
- store_artifacts:
297-
path: /tmp/THP002/derivatives/dmriprep
315+
path: /tmp/ds000206/derivatives/dmriprep
298316
- run:
299317
name: Clean working directory
300318
when: on_success
301319
command: |
302-
sudo rm -rf /tmp/THP002/work
320+
sudo rm -rf /tmp/ds000206/work
303321
- run:
304322
name: Clean working directory
305323
when: on_fail
306324
command: |
307-
find /tmp/THP002/work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
325+
find /tmp/ds000206/work \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
308326
-exec sh -c 'rm -f {}; touch {}' \;
309-
find /tmp/THP002/work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
327+
find /tmp/ds000206/work_partial \( -name "*.nii.gz" -or -name "*.nii" -or -name "*.gii" -or -name "*.h5" \) \
310328
-exec sh -c 'rm -f {}; touch {}' \;
311329
- store_artifacts:
312-
path: /tmp/THP002/work
330+
path: /tmp/ds000206/work
313331

314332
ds001771:
315333
machine:
@@ -336,7 +354,11 @@ jobs:
336354
at: /tmp
337355
- restore_cache:
338356
keys:
339-
- data-ds001771-v1-{{ .Revision }}
357+
- data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-{{ epoch }}
358+
- data-ds001771-v3-{{ .Branch }}-{{ .Revision }}-
359+
- data-ds001771-v3-{{ .Branch }}-
360+
- data-ds001771-v3-master-
361+
- data-ds001771-v3-
340362
- restore_cache:
341363
keys:
342364
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -363,6 +385,7 @@ jobs:
363385
-v /tmp/data/ds001771:/data \
364386
-v /tmp/ds001771/derivatives:/out \
365387
-v /tmp/fslicense/license.txt:/tmp/fslicense/license.txt:ro \
388+
-v /tmp/templateflow:/home/dmriprep/.cache/templateflow \
366389
-v /tmp/config/nipype.cfg:/home/dmriprep/.nipype/nipype.cfg \
367390
-v /tmp/ds001771/work:/work \
368391
--user $(id -u):$(id -g) \
@@ -671,7 +694,7 @@ workflows:
671694
tags:
672695
only: /.*/
673696

674-
- THP002:
697+
- ds000206:
675698
requires:
676699
- build
677700
- get_data
@@ -745,7 +768,7 @@ workflows:
745768
branches:
746769
ignore:
747770
- /tests?\/.*/
748-
- /THP002\/.*/
771+
- /ds000206\/.*/
749772
- /ds001771\/.*/
750773
tags:
751774
only: /.*/

0 commit comments

Comments
 (0)