@@ -6,6 +6,7 @@ _machine_defaults: &machine_defaults
6
6
image : ubuntu-2004:current
7
7
docker_layer_caching : true
8
8
working_directory : /tmp/src/nibabies
9
+ resource_class : large
9
10
10
11
_python_defaults : &python_defaults
11
12
docker :
@@ -39,6 +40,28 @@ _pull_from_registry: &pull_from_registry
39
40
docker pull localhost:5000/nibabies
40
41
docker tag localhost:5000/nibabies nipreps/nibabies:latest
41
42
43
+ _check_skip_job : &check_skip_job
44
+ name : Check commit message and determine if job should be skipped
45
+ command : |
46
+ set -x +e
47
+ COMMIT_MSG="$(git log --format='format:%s' -n 1 $CIRCLE_SHA1)"
48
+ DOCBUILD="$(echo ${COMMIT_MSG} | grep -i -E '^docs?(\(\w+\))?:')"
49
+ SKIP_BCP="$(echo ${COMMIT_MSG} | grep -i -E '\[skip[ _]?bcp\]' )"
50
+ # no skipping if tagged build
51
+ if [[ -n "$CIRCLETAG" ]]; then
52
+ exit 0
53
+ elif [[ -n "$DOCSBUILD" ]]; then # always try to skip docs builds
54
+ echo "Only docs build"
55
+ circleci step halt
56
+ elif [ -n "$CHECK_PYTEST" -a -n "$SKIP_PYTEST" ]; then
57
+ echo "Skipping pytest"
58
+ circleci step halt
59
+ elif [ -n "$CHECK_BCP" -a -n "$SKIP_BCP" ]; then
60
+ echo "Skipping BCP"
61
+ circleci step halt
62
+ fi
63
+ echo "No skip"
64
+
42
65
version : 2.1
43
66
orbs :
44
67
docker :
circleci/[email protected]
49
72
<< : *machine_defaults
50
73
steps :
51
74
- checkout
52
- - run :
53
- name : Check whether build should be skipped
54
- command : |
55
- if [[ "$( git log --format='format:%s' -n 1 $CIRCLE_SHA1 | grep -i -E '^docs?(\(\w+\))?:' )" != "" ]]; then
56
- echo "Only docs build"
57
- circleci step halt
58
- fi
75
+ - run : *check_skip_job
59
76
- restore_cache :
60
77
keys :
61
78
- build-v4-{{ .Branch }}-{{ .Revision }}
@@ -154,6 +171,7 @@ jobs:
154
171
- /tmp/docker
155
172
- /tmp/images
156
173
174
+
157
175
get_data :
158
176
docker :
159
177
- image : continuumio/miniconda3:4.10.3-alpine
@@ -214,19 +232,11 @@ jobs:
214
232
215
233
test_pytest :
216
234
<< : *machine_defaults
235
+ environment :
236
+ CHECK_PYTEST : true
217
237
steps :
218
238
- checkout
219
- - run :
220
- name : Check whether build should be skipped
221
- command : |
222
- if [[ "$( git log --format='format:%s' -n 1 $CIRCLE_SHA1 | grep -i -E '^docs?(\(\w+\))?:' )" != "" ]]; then
223
- echo "Only docs build"
224
- circleci step halt
225
- fi
226
- if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?tests\]' )" != "" ]]; then
227
- echo "Skipping pytest job"
228
- circleci step halt
229
- fi
239
+ - run : *check_skip_job
230
240
- attach_workspace :
231
241
at : /tmp
232
242
- restore_cache :
@@ -279,28 +289,16 @@ jobs:
279
289
- store_artifacts :
280
290
path : /tmp/data/reports
281
291
292
+
282
293
test_bcp :
294
+ << : *machine_defaults
283
295
environment :
284
296
- FS_LICENSE : /tmp/fslicense/license.txt
285
297
- DATASET : bcp
286
- << : *machine_defaults
298
+ - CHECK_BCP : true
287
299
steps :
288
300
- checkout
289
- - run :
290
- name : Check whether build should be skipped
291
- command : |
292
- if [[ "$( git log --format='format:%s' -n 1 $CIRCLE_SHA1 | grep -i -E '^docs?(\(\w+\))?:' )" != "" ]]; then
293
- echo "Only docs build"
294
- circleci step halt
295
- fi
296
- if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[skip[ _]?bcp\]' )" != "" ]]; then
297
- echo "Skipping bcp build"
298
- circleci step halt
299
- fi
300
- if [[ "$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[no[ _-]?fasttrack\]' )" != "" ]]; then
301
- touch /tmp/.nofasttrack
302
- echo "Anatomical fasttrack reusing sMRIPrep's derivatives will not be used."
303
- fi
301
+ - run : *check_skip_job
304
302
- attach_workspace :
305
303
at : /tmp
306
304
- restore_cache :
@@ -345,8 +343,8 @@ jobs:
345
343
--fs-subjects-dir /tmp/data/${DATASET}/derivatives/infant-freesurfer \
346
344
--skull-strip-template UNCInfant:cohort-1 \
347
345
--output-spaces MNIInfant:cohort-1 func \
348
- --sloppy --write-graph --mem_mb 8192 \
349
- --nthreads 2 -vv --age-months 2 --sloppy \
346
+ --sloppy --write-graph --mem-mb 14000 \
347
+ --nthreads 4 -vv --age-months 2 --sloppy \
350
348
--derivatives /tmp/data/${DATASET}/derivatives/precomputed \
351
349
--output-layout bids --anat-only
352
350
- run :
@@ -371,8 +369,8 @@ jobs:
371
369
--fs-subjects-dir /tmp/data/${DATASET}/derivatives/infant-freesurfer \
372
370
--skull-strip-template UNCInfant:cohort-1 \
373
371
--output-spaces MNIInfant:cohort-1 func \
374
- --sloppy --write-graph --mem_mb 8192 \
375
- --nthreads 2 -vv --age-months 2 --sloppy \
372
+ --sloppy --write-graph --mem-mb 14000 \
373
+ --nthreads 4 -vv --age-months 2 --sloppy \
376
374
--derivatives /tmp/data/${DATASET}/derivatives/precomputed \
377
375
--output-layout bids
378
376
- run :
@@ -388,6 +386,7 @@ jobs:
388
386
- store_artifacts :
389
387
path : /tmp/bcp/derivatives
390
388
389
+
391
390
deploy_docker_patches :
392
391
<< : *machine_defaults
393
392
steps :
@@ -423,6 +422,7 @@ jobs:
423
422
docker tag nipreps/nibabies nipreps/nibabies:${CIRCLE_BRANCH#docker/}
424
423
docker push nipreps/nibabies:${CIRCLE_BRANCH#docker/}
425
424
425
+
426
426
deploy_docker :
427
427
<< : *machine_defaults
428
428
steps :
@@ -459,6 +459,7 @@ jobs:
459
459
fi
460
460
fi
461
461
462
+
462
463
test_deploy_pypi :
463
464
<< : *python_defaults
464
465
steps :
@@ -528,6 +529,7 @@ jobs:
528
529
- store_artifacts :
529
530
path : /tmp/src/nibabies/wrapper/dist
530
531
532
+
531
533
deploy_pypi :
532
534
<< : *python_defaults
533
535
steps :
@@ -564,6 +566,7 @@ jobs:
564
566
export TWINE_PASSWORD=$PYPI_WRAPPER_TOKEN
565
567
python -m twine upload wrapper/dist/nibabies*
566
568
569
+
567
570
deployable :
568
571
docker :
569
572
- image : busybox:latest
0 commit comments