@@ -56,32 +56,38 @@ commands:
5656 steps :
5757 - push-to-docker-hub :
5858 tag : nightly
59- - when :
60- condition :
61- not :
62- equal : [ << parameters.variant >>, fMRIPrep-LTS ]
63- steps :
64- - run :
65- name : " Starting local registry"
66- command : docker run -d -p 5000:5000 --restart=always --name registry registry:2
67- - get-singularity
68- - run :
69- name : " Building Singularity image from Docker image"
70- command : |
71- docker load < ${DOCKER_TARBALL}.tar.gz
72- docker tag fcpindi/c-pac:${DOCKER_TAG} localhost:5000/fcpindi/c-pac:${DOCKER_TAG}
73- docker push localhost:5000/fcpindi/c-pac:${DOCKER_TAG}
74- SINGULARITY_NOHTTPS=1 singularity build cpac-singularity-image${VARIANT}.simg docker://localhost:5000/fcpindi/c-pac:${DOCKER_TAG}
75- no_output_timeout : 5h
76- check-for-built-images :
59+ # - when:
60+ # condition:
61+ # not:
62+ # equal: [ << parameters.variant >>, fMRIPrep-LTS ]
63+ # steps:
64+ # - run:
65+ # name: "Starting local registry"
66+ # command: docker run -d -p 5000:5000 --restart=always --name registry registry:2
67+ # - get-singularity
68+ # - run:
69+ # name: "Building Singularity image from Docker image"
70+ # command: |
71+ # docker load < ${DOCKER_TARBALL}.tar.gz
72+ # docker tag fcpindi/c-pac:${DOCKER_TAG} localhost:5000/fcpindi/c-pac:${DOCKER_TAG}
73+ # docker push localhost:5000/fcpindi/c-pac:${DOCKER_TAG}
74+ # SINGULARITY_NOHTTPS=1 singularity build cpac-singularity-image${VARIANT}.simg docker://localhost:5000/fcpindi/c-pac:${DOCKER_TAG}
75+ # no_output_timeout: 5h
76+ check-updated :
7777 steps :
78+ - restore_cache :
79+ key : updated--{{ .Revision }}
7880 - run :
79- name : " Checking for locally built images"
80- command : |
81- if [[ ! -f ${DOCKER_TARBALL}.tar.gz ]]
82- then
83- circleci step halt
84- fi
81+ name : " Halt if version updated"
82+ command : if [[ $(cat /home/circleci/HALT) == true ]]; then circleci step halt; fi
83+ clear-up-space :
84+ parameters :
85+ filepath :
86+ type : string
87+ steps :
88+ - run :
89+ name : " Delete file we're done with"
90+ command : rm -rf << parameters.filepath >>
8591 combine-coverage :
8692 steps :
8793 - run :
@@ -199,7 +205,7 @@ commands:
199205 DOCKERFILE="variant-<< parameters.variant >>.Dockerfile"
200206 if [[ -f ${DOCKERFILE} ]]
201207 then
202- sed -i "s|:latest|:${CIRCLE_BRANCH//\//_}|g" ${DOCKERFILE}
208+ sed -i "s|c-pac :latest|c-pac :${CIRCLE_BRANCH//\//_}|g" ${DOCKERFILE}
203209 fi
204210 DOCKER_TARBALL="${DOCKER_TARBALL}-<< parameters.variant >>"
205211 VARIANT="-<< parameters.variant >>"
@@ -217,114 +223,131 @@ commands:
217223 pip install -r dev/circleci_data/requirements.txt
218224 coverage run -m pytest --junitxml=test-results/junit.xml --continue-on-collection-errors dev/circleci_data/test_install.py
219225
220- jobs :
226+ jobs :
221227 build :
222228 machine :
223229 image : ubuntu-2004:202010-01
224230 steps :
225231 - checkout
232+ - check-updated
226233 - set-python-version
227- - configure-git-user
228- - run :
229- name : " Checking if version needs updated"
230- # update version if version needs updated, otherwise just move on
231- command : |
232- COMMIT_MESSAGE=$(git log -1 --pretty=%B)
233- if [[ ! "$COMMIT_MESSAGE" == *"Update version to"* ]]
234- then
235- cd $HOME/project/CPAC
236- VERSION=$(python -c "from info import __version__; print('.'.join(('.'.join(__version__[::-1].split('-')[1].split('.')[1:])[::-1], __version__.split('-')[1])) if '-' in __version__ else __version__)")
237- cd ..
238- echo "v${VERSION}" > version
239- sed -i -r "s/^(# [Vv]ersion ).*$/# Version ${VERSION}/g" dev/docker_data/default_pipeline.yml
240- find ./CPAC/resources/configs -name "*.yml" -exec sed -i -r "s/^(# [Vv]ersion ).*$/# Version ${VERSION}/g" {} \;
241- git add version CPAC/resources/configs dev/docker_data/default_pipeline.yml
242- if [[ ! -z $(git diff origin/${CIRCLE_BRANCH}) ]]
243- then
244- git commit -m ":bookmark: Update version to ${VERSION} ($COMMIT_MESSAGE)"
245- git push origin HEAD:${CIRCLE_BRANCH} || true
246- circleci step halt
247- fi
248- cd ..
249- fi
250234 - build-images
251235 - store_artifacts :
252236 path : cpac-docker-image.tar.gz
253- - store_artifacts :
254- path : cpac-singularity-image.simg
237+ # - store_artifacts:
238+ # path: cpac-singularity-image.simg
255239 - persist_to_workspace :
256240 root : /home/circleci/
257241 paths :
258242 - project/cpac-docker-image.tar.gz
259- - project/cpac-singularity-image.simg
243+ # - project/cpac-singularity-image.simg
260244 build-ABCD-HCP :
261245 machine :
262246 image : ubuntu-2004:202010-01
263247 steps :
264248 - checkout
249+ - check-updated
265250 - set-python-version
266251 - build-images :
267252 variant : ABCD-HCP
268253 - store_artifacts :
269254 path : cpac-docker-image-ABCD-HCP.tar.gz
270- - store_artifacts :
271- path : cpac-singularity-image-ABCD-HCP.simg
255+ # - store_artifacts:
256+ # path: cpac-singularity-image-ABCD-HCP.simg
272257 - persist_to_workspace :
273258 root : /home/circleci/
274259 paths :
275260 - project/cpac-docker-image-ABCD-HCP.tar.gz
276- - project/cpac-singularity-image-ABCD-HCP.simg
261+ # - project/cpac-singularity-image-ABCD-HCP.simg
277262 build-fMRIPrep-LTS :
278263 machine :
279264 image : ubuntu-2004:202010-01
280265 steps :
281266 - checkout
267+ - check-updated
282268 - set-python-version
283269 - build-images :
284270 variant : fMRIPrep-LTS
285271 - store_artifacts :
286272 path : cpac-docker-image-fMRIPrep-LTS.tar.gz
287- - store_artifacts :
288- path : cpac-singularity-image-fMRIPrep-LTS.simg
273+ # - store_artifacts:
274+ # path: cpac-singularity-image-fMRIPrep-LTS.simg
289275 - persist_to_workspace :
290276 root : /home/circleci/
291277 paths :
292278 - project/cpac-docker-image-fMRIPrep-LTS.tar.gz
293- - project/cpac-singularity-image-fMRIPrep-LTS.simg
279+ # - project/cpac-singularity-image-fMRIPrep-LTS.simg
294280 build-lite :
295281 machine :
296282 image : ubuntu-2004:202010-01
297283 steps :
298284 - checkout
285+ - check-updated
299286 - set-python-version
300287 - build-images :
301288 variant : lite
302289 - store_artifacts :
303290 path : cpac-docker-image-lite.tar.gz
304- - store_artifacts :
305- path : cpac-singularity-image-lite.simg
291+ # - store_artifacts:
292+ # path: cpac-singularity-image-lite.simg
306293 - persist_to_workspace :
307294 root : /home/circleci/
308295 paths :
309296 - project/cpac-docker-image-lite.tar.gz
310- - project/cpac-singularity-image-lite.simg
297+ # - project/cpac-singularity-image-lite.simg
298+ check-version :
299+ machine :
300+ image : ubuntu-2004:202010-01
301+ steps :
302+ - checkout
303+ - set-python-version
304+ - configure-git-user
305+ - run :
306+ name : " Checking if version needs updated"
307+ # update version if version needs updated, otherwise just move on
308+ command : |
309+ HALT=false
310+ COMMIT_MESSAGE=$(git log -1 --pretty=%B)
311+ if [[ ! "$COMMIT_MESSAGE" == *"Update version to"* ]]
312+ then
313+ cd $HOME/project/CPAC
314+ VERSION=$(python -c "from info import __version__; print('.'.join(('.'.join(__version__[::-1].split('-')[1].split('.')[1:])[::-1], __version__.split('-')[1])) if '-' in __version__ else __version__)")
315+ cd ..
316+ echo "v${VERSION}" > version
317+ sed -i -r "s/^(# [Vv]ersion ).*$/# Version ${VERSION}/g" dev/docker_data/default_pipeline.yml
318+ find ./CPAC/resources/configs -name "*.yml" -exec sed -i -r "s/^(# [Vv]ersion ).*$/# Version ${VERSION}/g" {} \;
319+ git add version CPAC/resources/configs dev/docker_data/default_pipeline.yml
320+ if [[ ! -z $(git diff origin/${CIRCLE_BRANCH}) ]]
321+ then
322+ git commit -m ":bookmark: Update version to ${VERSION} ($COMMIT_MESSAGE)"
323+ git push origin HEAD:${CIRCLE_BRANCH} || true
324+ HALT=true
325+ fi
326+ cd ..
327+ fi
328+ echo "${HALT}" > /home/circleci/HALT
329+ - save_cache :
330+ key : updated--{{ .Revision }}
331+ paths :
332+ - /home/circleci/HALT
311333 combine-coverage :
312334 machine :
313335 image : ubuntu-2004:202010-01
314336 steps :
315337 - checkout
338+ - check-updated
316339 - restore_cache :
317340 key : coverage-docker--{{ .Revision }}
318- - restore_cache :
319- key : coverage-singularity--{{ .Revision }}
341+ # - restore_cache:
342+ # key: coverage-singularity--{{ .Revision }}
320343 - restore_cache :
321344 key : coverage-docker-ABCD-HCP-{{ .Revision }}
322- - restore_cache :
323- key : coverage-singularity-ABCD-HCP-{{ .Revision }}
345+ # - restore_cache:
346+ # key: coverage-singularity-ABCD-HCP-{{ .Revision }}
324347 - restore_cache :
325348 key : coverage-docker-lite-{{ .Revision }}
326- - restore_cache :
327- key : coverage-singularity-lite-{{ .Revision }}
349+ # - restore_cache:
350+ # key: coverage-singularity-lite-{{ .Revision }}
328351 - set-python-version
329352 - combine-coverage
330353 - store_artifacts :
@@ -338,14 +361,16 @@ jobs:
338361 image : ubuntu-2004:202010-01
339362 steps :
340363 - checkout
341- - attach_workspace :
342- at : /home/circleci/
364+ - check-updated
343365 - set-up-variant :
344366 variant : " << parameters.variant >>"
345- - check-for-built-images
367+ - attach_workspace :
368+ at : /home/circleci/
346369 - set-python-version
347370 - get-sample-bids-data
348371 - run-pytest-docker
372+ - clear-up-space :
373+ filepath : ${DOCKER_TARBALL}.tar.gz
349374 - store_test_results :
350375 path : test-results
351376 - save_cache :
@@ -362,17 +387,19 @@ jobs:
362387 image : ubuntu-2004:202010-01
363388 steps :
364389 - checkout
365- - attach_workspace :
366- at : /home/circleci/
390+ - check-updated
367391 - set-up-variant :
368392 variant : " << parameters.variant >>"
369- - check-for-built-images
393+ - attach_workspace :
394+ at : /home/circleci/
370395 - set-python-version
371396 - get-singularity
372397 - test-singularity-installation
373398 - run :
374399 command : " SINGULARITYENV_COVERAGE_FILE=.coverage.singularity${VARIANT} singularity exec -B $PWD:/code cpac-singularity-image${VARIANT}.simg /code/dev/circleci_data/test_in_image.sh"
375400 name : " Running unit tests in Singularity image"
401+ - clear-up-space :
402+ filepath : cpac-singularity-image${VARIANT}.simg
376403 - store_test_results :
377404 path : test-results
378405 - save_cache :
@@ -386,52 +413,62 @@ workflows:
386413 jobs :
387414 - build :
388415 name : " Build images"
389- - build-ABCD-HCP :
390- name : " Build ABCD-HCP variant images"
391- - build-fMRIPrep-LTS :
392- name : " Build fMRIPrep-LTS variant images"
416+ requires :
417+ - " Checking for updated version"
418+ # - build-ABCD-HCP:
419+ # name: "Build ABCD-HCP variant images"
420+ # requires:
421+ # - "Checking for updated version"
422+ # - build-fMRIPrep-LTS:
423+ # name: "Build fMRIPrep-LTS variant images"
424+ # requires:
425+ # - "Checking for updated version"
393426 - build-lite :
394427 name : " Build lite variant images"
428+ requires :
429+ - " Checking for updated version"
430+ - check-version :
431+ name : " Checking for updated version"
395432 - combine-coverage :
396433 name : " Combine coverage"
397434 requires :
398435 - " Test in Docker"
399- - " Test in Singularity"
436+ # - "Test in Singularity"
400437 - " Test lite variant in Docker"
401- - " Test lite variant in Singularity"
402- - " Test ABCD-HCP variant in Docker"
403- - " Test ABCD-HCP variant in Singularity"
404- - " Test fMRIPrep-LTS variant in Docker"
438+ # - "Test lite variant in Singularity"
439+ # - "Test ABCD-HCP variant in Docker"
440+ # - "Test ABCD-HCP variant in Singularity"
441+ # - "Test fMRIPrep-LTS variant in Docker"
405442 - pytest-docker :
406443 name : " Test in Docker"
407444 requires :
408445 - " Build images"
409- - pytest-docker :
410- name : " Test ABCD-HCP variant in Docker"
411- requires :
412- - " Build ABCD-HCP variant images"
413- variant : ABCD-HCP
414- - pytest-docker :
415- name : " Test fMRIPrep-LTS variant in Docker"
416- requires :
417- - " Build fMRIPrep-LTS variant images"
418- variant : fMRIPrep-LTS
446+ # - pytest-docker:
447+ # name: "Test ABCD-HCP variant in Docker"
448+ # requires:
449+ # - "Build ABCD-HCP variant images"
450+ # variant: ABCD-HCP
451+ # - pytest-docker:
452+ # name: "Test fMRIPrep-LTS variant in Docker"
453+ # requires:
454+ # - "Build fMRIPrep-LTS variant images"
455+ # variant: fMRIPrep-LTS
419456 - pytest-docker :
420457 name : " Test lite variant in Docker"
421458 requires :
422459 - " Build lite variant images"
423460 variant : lite
424- - pytest-singularity :
425- name : " Test in Singularity"
426- requires :
427- - " Build images"
428- - pytest-singularity :
429- name : " Test ABCD-HCP variant in Singularity"
430- requires :
431- - " Build ABCD-HCP variant images"
432- variant : ABCD-HCP
433- - pytest-singularity :
434- name : " Test lite variant in Singularity"
435- requires :
436- - " Build lite variant images"
437- variant : lite
461+ # - pytest-singularity:
462+ # name: "Test in Singularity"
463+ # requires:
464+ # - "Build images"
465+ # - pytest-singularity:
466+ # name: "Test ABCD-HCP variant in Singularity"
467+ # requires:
468+ # - "Build ABCD-HCP variant images"
469+ # variant: ABCD-HCP
470+ # - pytest-singularity:
471+ # name: "Test lite variant in Singularity"
472+ # requires:
473+ # - "Build lite variant images"
474+ # variant: lite
0 commit comments