Skip to content

Commit 0ea25a1

Browse files
committed
update circle ci config
1 parent 2f59240 commit 0ea25a1

File tree

1 file changed

+74
-43
lines changed

1 file changed

+74
-43
lines changed

.circleci/config.yml

Lines changed: 74 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,78 @@
11
version: 2
22

3-
general:
4-
artifacts:
5-
- "~/outputs"
6-
machine:
7-
services:
8-
- docker
9-
10-
dependencies:
11-
cache_directories:
12-
- "~/docker"
13-
- "~/data"
14-
15-
override:
16-
# google drive link to test data, thanks to Gael V. and Chris G.
17-
# https://googledrive.com/host/0B2JWN60ZLkgkMEw4bW5VUUpSdFU/ds005-deriv-light.tar
18-
- if [[ ! -d ~/data/ds005-deriv-light/derivatives ]]; then wget -c -P ${HOME}/downloads/ -O ds005-deriv-light.tar "https://files.osf.io/file?path=%2F57e549c2b83f6901d357d15f&provider=osfstorage&nid=9q7dv&accept_url=false&action=download" && mkdir -p ${HOME}/data && tar xf ${HOME}/downloads/ds005-deriv-light.tar -C ${HOME}/data; fi
19-
- if [[ -e ~/docker/image.tar ]]; then docker load -i ~/docker/image.tar; fi
20-
- git describe --tags > version
21-
- docker build -t bids/${CIRCLE_PROJECT_REPONAME,,} . :
22-
timeout: 21600
23-
- mkdir -p ~/docker; docker save "bids/${CIRCLE_PROJECT_REPONAME,,}" > ~/docker/image.tar
24-
- mkdir -p ${HOME}/outputs
25-
26-
test:
27-
override:
28-
- docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs participant --participant_label 01 :
29-
timeout: 21600
30-
- docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs participant --participant_label 02 :
31-
timeout: 21600
32-
- docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs participant --participant_label 03 :
33-
timeout: 21600
34-
- docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs group :
35-
timeout: 21600
36-
37-
deployment:
38-
hub:
39-
owner: BIDS-Apps
40-
tag: /.*/
41-
commands:
42-
- if [[ -n "$DOCKER_PASS" ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker push bids/${CIRCLE_PROJECT_REPONAME}:latest; fi :
43-
timeout: 21600
44-
- if [[ -n "$DOCKER_PASS" ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker tag bids/${CIRCLE_PROJECT_REPONAME} bids/${CIRCLE_PROJECT_REPONAME}:$CIRCLE_TAG && docker push bids/${CIRCLE_PROJECT_REPONAME}:$CIRCLE_TAG; fi :
45-
timeout: 21600
3+
jobs:
4+
build:
5+
machine:
6+
# https://circleci.com/developer/machine/image/ubuntu-2204
7+
image: ubuntu-2204:2022.10.2
8+
9+
steps:
10+
- checkout
11+
- restore_cache:
12+
keys:
13+
- my_cache
14+
15+
# google drive link to test data, thanks to Gael V. and Chris G.
16+
# https://googledrive.com/host/0B2JWN60ZLkgkMEw4bW5VUUpSdFU/ds005-deriv-light.tar
17+
- run: if [[ ! -d ~/data/ds005-deriv-light/derivatives ]]; then wget -c -P ${HOME}/downloads/ -O ds005-deriv-light.tar "https://files.osf.io/file?path=%2F57e549c2b83f6901d357d15f&provider=osfstorage&nid=9q7dv&accept_url=false&action=download" && mkdir -p ${HOME}/data && tar xf ${HOME}/downloads/ds005-deriv-light.tar -C ${HOME}/data; fi
18+
- run: git describe --tags --always > version
19+
- run:
20+
command: docker build -t bids/${CIRCLE_PROJECT_REPONAME,,} .
21+
no_output_timeout: 6h
22+
- run: mkdir -p ~/docker; docker save "bids/${CIRCLE_PROJECT_REPONAME,,}" > ~/docker/image.tar
23+
- run: mkdir -p ${HOME}/outputs
24+
25+
- run:
26+
command: docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs participant --participant_label 01
27+
no_output_timeout: 6h
28+
- run:
29+
command: docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs participant --participant_label 02
30+
no_output_timeout: 6h
31+
- run:
32+
command: docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs participant --participant_label 03
33+
no_output_timeout: 6h
34+
- run:
35+
command: docker run -ti --rm --read-only -v /tmp:/tmp -v /var/tmp:/var/tmp -v ${HOME}/data/ds005-deriv-light:/bids_dataset -v ${HOME}/outputs:/outputs bids/${CIRCLE_PROJECT_REPONAME,,} /bids_dataset /outputs group
36+
no_output_timeout: 6h
37+
38+
39+
- save_cache:
40+
key: my_cache
41+
paths:
42+
- "~/docker"
43+
- "~/data"
44+
45+
deployment:
46+
docker:
47+
- image: circleci/buildpack-deps:stretch
48+
49+
steps:
50+
- attach_workspace:
51+
at: /tmp/workspace
52+
- setup_remote_docker
53+
- run: docker load -i /tmp/workspace/image.tar
54+
- run:
55+
command: if [[ -n "$DOCKER_PASS" ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker push bids/${CIRCLE_PROJECT_REPONAME}:latest; fi
56+
no_output_timeout: 6h
57+
- run:
58+
command: if [[ -n "$DOCKER_PASS" ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker tag bids/${CIRCLE_PROJECT_REPONAME} bids/${CIRCLE_PROJECT_REPONAME}:$CIRCLE_TAG && docker push bids/${CIRCLE_PROJECT_REPONAME}:$CIRCLE_TAG; fi
59+
no_output_timeout: 6h
60+
61+
workflows:
62+
version: 2
63+
build-test-deploy:
64+
jobs:
65+
- build:
66+
filters:
67+
tags:
68+
only: /.*/
69+
- deployment:
70+
requires:
71+
- build
72+
filters:
73+
branches:
74+
ignore: /.*/
75+
tags:
76+
only: /.*/
4677

4778
# VS Code Extension Version: 1.5.1

0 commit comments

Comments
 (0)