@@ -66,12 +66,15 @@ jobs:
66
66
parameters :
67
67
version :
68
68
type : string
69
+ test :
70
+ type : string
69
71
steps :
70
72
- checkout
71
73
- attach_workspace :
72
74
at : /tmp/workspace
73
75
74
76
- run :
77
+ name : load image
75
78
command : |
76
79
docker load -i /tmp/workspace/docker/image_fs<< parameters.version >>.tar
77
80
@@ -93,84 +96,70 @@ jobs:
93
96
--tmpfs /tmp --tmpfs /var/tmp \
94
97
bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> -h
95
98
96
- - run : mkdir -p ${HOME}/outputs1 ${HOME}/outputs2
99
+ - run : mkdir -p ${HOME}/outputs<< parameters.test >>
97
100
98
101
- run :
99
- name : test 1
100
- command : |
101
- docker run -ti --rm --read-only \
102
- -v /tmp/workspace/license_fs<< parameters.version >>/license.txt:/license.txt \
103
- -v /tmp/workspace/data/ds114_test1:/bids_dataset \
104
- -v ${HOME}/outputs1:/outputs \
105
- --tmpfs /tmp --tmpfs /var/tmp \
106
- bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> \
107
- /bids_dataset \
108
- /outputs \
109
- participant \
110
- --participant_label 01 \
111
- --license_file=/license.txt \
112
- --stages autorecon1
102
+ name : test << parameters.test >>
103
+ command : |2
113
104
114
- cat ${HOME}/outputs1/sub-01/scripts/recon-all.done
105
+ if [[ << parameters.test >> -eq 1 ]]; then
106
+ docker run -ti --rm --read-only \
107
+ -v /tmp/workspace/license_fs<< parameters.version >>/license.txt:/license.txt \
108
+ -v /tmp/workspace/data/ds114_test<< parameters.test >>:/bids_dataset \
109
+ -v ${HOME}/outputs<< parameters.test >>:/outputs \
110
+ --tmpfs /tmp --tmpfs /var/tmp \
111
+ bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> \
112
+ /bids_dataset \
113
+ /outputs \
114
+ participant \
115
+ --participant_label 01 \
116
+ --license_file=/license.txt \
117
+ --stages autorecon1
115
118
116
- - run :
117
- name : test 2
118
- command : |
119
- docker run -ti --rm --read-only \
120
- -v /tmp/workspace/license_fs<< parameters.version >>/license.txt:/license.txt \
121
- -v /tmp/workspace/data/ds114_test2:/bids_dataset \
122
- -v ${HOME}/outputs2:/outputs \
123
- --tmpfs /tmp --tmpfs /var/tmp \
124
- bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> \
125
- /bids_dataset \
126
- /outputs \
127
- participant \
128
- --participant_label 01 \
129
- --steps cross-sectional \
130
- --session_label test \
131
- --license_file=/license.txt \
132
- --stages autorecon1
119
+ cat ${HOME}/outputs<< parameters.test >>/sub-01/scripts/recon-all.done
133
120
134
- cat ${HOME}/outputs2/sub-01_ses-test/scripts/recon-all.done
121
+ fi
122
+
123
+ if [[ << parameters.test >> -eq 2 ]]; then
124
+ docker run -ti --rm --read-only \
125
+ -v /tmp/workspace/license_fs<< parameters.version >>/license.txt:/license.txt \
126
+ -v /tmp/workspace/data/ds114_test<< parameters.test >>:/bids_dataset \
127
+ -v ${HOME}/outputs<< parameters.test >>:/outputs \
128
+ --tmpfs /tmp --tmpfs /var/tmp \
129
+ bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> \
130
+ /bids_dataset \
131
+ /outputs \
132
+ participant \
133
+ --participant_label 01 \
134
+ --license_file=/license.txt \
135
+ --stages autorecon1 \
136
+ --steps cross-sectional \
137
+ --session_label test
138
+
139
+ cat ${HOME}/outputs<< parameters.test >>/sub-01_ses-test/scripts/recon-all.done
140
+ fi
135
141
136
142
- run :
137
- name : group2 test 1
143
+ name : group2 test << parameters.test >>
138
144
command : |
139
145
docker run -ti --rm --read-only \
140
146
-v /tmp/workspace/license_fs<< parameters.version >>/license.txt:/license.txt \
141
- -v /tmp/workspace/data/ds114_test1 :/bids_dataset \
142
- -v /tmp/workspace/data/ds114_test1_freesurfer_precomp_v6 .0.0:/outputs \
147
+ -v /tmp/workspace/data/ds114_test<< parameters.test >> :/bids_dataset \
148
+ -v /tmp/workspace/data/ds114_test<< parameters.test >>_freesurfer_precomp_v6 .0.0:/outputs \
143
149
--tmpfs /tmp --tmpfs /var/tmp \
144
150
bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> \
145
151
/bids_dataset \
146
152
/outputs \
147
153
group2 \
148
154
--license_file=/license.txt
149
155
150
- sudo mv /tmp/workspace/data/ds114_test1_freesurfer_precomp_v6.0.0/00_group* ${HOME}/outputs1/
151
- cat ${HOME}/outputs1/00_group2_stats_tables/lh.aparc.thickness.tsv
152
- cat ${HOME}/outputs1/00_group2_stats_tables/euler.tsv
153
-
154
- - run :
155
- name : group2 test 2
156
- command : |
157
- docker run -ti --rm --read-only \
158
- -v /tmp/workspace/license_fs<< parameters.version >>/license.txt:/license.txt \
159
- -v /tmp/workspace/data/ds114_test2:/bids_dataset \
160
- -v /tmp/workspace/data/ds114_test2_freesurfer_precomp_v6.0.0:/outputs \
161
- --tmpfs /tmp --tmpfs /var/tmp \
162
- bids/${CIRCLE_PROJECT_REPONAME}_fs<< parameters.version >> \
163
- /bids_dataset /outputs group2 \
164
- --license_file=/license.txt
165
-
166
- sudo mv /tmp/workspace/data/ds114_test2_freesurfer_precomp_v6.0.0/00_group* ${HOME}/outputs2/
167
- cat ${HOME}/outputs2/00_group2_stats_tables/lh.aparc.thickness.tsv
168
- cat ${HOME}/outputs2/00_group2_stats_tables/euler.tsv
156
+ sudo mv /tmp/workspace/data/ds114_test<< parameters.test >>_freesurfer_precomp_v6.0.0/00_group* \
157
+ ${HOME}/outputs<< parameters.test >>/
158
+ cat ${HOME}/outputs<< parameters.test >>/00_group2_stats_tables/lh.aparc.thickness.tsv
159
+ cat ${HOME}/outputs<< parameters.test >>/00_group2_stats_tables/euler.tsv
169
160
170
161
- store_artifacts :
171
- path : ~/outputs1
172
- - store_artifacts :
173
- path : ~/outputs2
162
+ path : ~/outputs<< parameters.test >>
174
163
175
164
deploy :
176
165
machine :
@@ -183,43 +172,59 @@ jobs:
183
172
- attach_workspace :
184
173
at : /tmp/workspace
185
174
- run :
175
+ name : load image
186
176
command : |
187
177
docker load -i /tmp/workspace/docker/image_fs<< parameters.version >>.tar
188
178
- run :
179
+ name : push to dockerhub
189
180
command : |
190
181
if [[ -n "${DOCKER_TOKEN}" ]]; then
191
182
192
- # make sure we have a lowercase repo
193
- user_name="bids"
194
- repo_name=$(echo "${CIRCLE_PROJECT_REPONAME}" | tr '[:upper:]' '[:lower:]')
195
- FS_MAJOR_VERSION=<< parameters.version >>
196
- if [[ FS_MAJOR_VERSION -eq 6 ]]; then
197
- FS_VERSION=6.0.1
198
- else
199
- FS_VERSION=7.4.1
200
- fi
183
+ echo "${DOCKER_TOKEN}" | docker login -u "${DOCKER_USER}" --password-stdin
184
+
185
+ # make sure we have a lowercase repo
186
+ user_name="bids"
187
+
188
+ repo_name=$(echo "${CIRCLE_PROJECT_REPONAME}" | tr '[:upper:]' '[:lower:]')
189
+
190
+ FS_MAJOR_VERSION=<< parameters.version >>
191
+ if [[ FS_MAJOR_VERSION -eq 6 ]]; then
192
+ FS_VERSION=6.0.1
193
+ else
194
+ FS_VERSION=7.4.1
195
+ fi
196
+
197
+ : "Pushing unstable versions for ${FS_MAJOR_VERSION} to DockerHub"
198
+
199
+ unstable="${user_name}/${repo_name}:${FS_VERSION}-unstable"
200
+ major_unstable="${user_name}/${repo_name}:${FS_MAJOR_VERSION}-unstable"
201
201
202
- if [[ -n "${DOCKER_TOKEN}" ]]; then
203
- echo "${DOCKER_TOKEN}" | docker login -u "${DOCKER_USER}" --password-stdin
202
+ docker tag "${user_name}/${repo_name}_fs<< parameters.version >>" "${unstable}"
203
+ docker push "${unstable}"
204
+ docker tag "${unstable}" "${major_unstable}"
205
+ docker push "${major_unstable}"
204
206
205
- : "Pushing to DockerHub ${user_name}/${repo_name}:unstable"
206
- docker tag "${user_name}/${repo_name}" "${user_name}/${repo_name}:${FS_VERSION}-unstable"
207
- docker push "${user_name}/${repo_name}:${FS_VERSION}-unstable"
207
+ if [[ -n "${CIRCLE_TAG}" ]]; then
208
208
209
- if [[ -n "${CIRCLE_TAG}" ]]; then
210
- : "Pushing to DockerHub ${user_name}/${repo_name}:${FS_VERSION}-${CIRCLE_TAG}"
211
- if [[ FS_MAJOR_VERSION -eq 6 ]]; then
212
- docker push "${user_name}/${repo_name}:latest"
213
- fi
209
+ : "Pushing stable and latest versions for ${FS_VERSION} to DockerHub"
214
210
215
- docker tag "${user_name}/${repo_name}" "${user_name}/${repo_name}:${FS_MAJOR_VERSION}"
216
- docker push ${user_name}/${repo_name}:${FS_MAJOR_VERSION}
217
- docker tag "${user_name}/${repo_name}" "${user_name}/${repo_name}:${FS_VERSION}-${CIRCLE_TAG}"
218
- docker push "${user_name}/${repo_name}:${FS_VERSION}-${CIRCLE_TAG}"
219
- fi
211
+ latest="${user_name}/${repo_name}:latest"
220
212
213
+ if [[ FS_MAJOR_VERSION -eq 6 ]]; then
214
+ docker tag "${unstable}" "${latest}"
215
+ docker push "${latest}"
221
216
fi
222
217
218
+ major_tagged_release="${user_name}/${repo_name}:${FS_MAJOR_VERSION}-${CIRCLE_TAG}"
219
+ docker tag "${major_unstable}" "${major_tagged_release}"
220
+ docker push "${major_tagged_release}"
221
+
222
+ tagged_release="${user_name}/${repo_name}:${FS_VERSION}-${CIRCLE_TAG}"
223
+ docker tag "${unstable}" "${tagged_release}"
224
+ docker push "${tagged_release}"
225
+
226
+ fi
227
+
223
228
else
224
229
: "No DOCKER_TOKEN, skipping push to DockerHub"
225
230
exit 1
@@ -248,10 +253,11 @@ workflows:
248
253
only : /.*/
249
254
250
255
- test :
251
- name : test_<< matrix.version >>
256
+ name : test_<< matrix.version >>_<< matrix.test >>
252
257
matrix :
253
258
parameters :
254
259
version : ['6', '7']
260
+ test : ['1', '2']
255
261
requires :
256
262
- build_<< matrix.version >>
257
263
- get_data
@@ -268,9 +274,10 @@ workflows:
268
274
context :
269
275
- dockerhub
270
276
requires :
271
- - test_<< matrix.version >>
277
+ - test_<< matrix.version >>_1
278
+ - test_<< matrix.version >>_2
272
279
filters :
273
280
branches :
274
- ignore : /.*/
281
+ only : /.*/
275
282
tags :
276
283
only : /.*/
0 commit comments