35
35
- docker/Dockerfile.base-pruned
36
36
- docker/get_base_image.sh
37
37
38
- fetch_base :
38
+ build_images :
39
39
machine :
40
40
# Ubuntu 14.04 with Docker 17.10.0-ce
41
41
image : circleci/classic:201710-02
72
72
echo "Error: method to get base image not understood"
73
73
exit 1
74
74
fi
75
- - run :
76
- name : Save Docker images to workspace
77
- no_output_timeout : 60m
78
- command : |
79
- docker save nipype/nipype:base | gzip -1 > /tmp/docker/nipype-base.tar.gz \
80
- && du -h /tmp/docker/nipype-base.tar.gz
81
- - persist_to_workspace :
82
- root : /tmp
83
- paths :
84
- - docker/*
85
-
86
- build_py2 :
87
- machine :
88
- # Ubuntu 14.04 with Docker 17.10.0-ce
89
- image : circleci/classic:201710-02
90
- working_directory : /home/circleci/nipype
91
- steps :
92
- - checkout :
93
- path : /home/circleci/nipype
94
- - attach_workspace :
95
- at : /tmp
96
- - run :
97
- name : Load saved Docker images.
98
- no_output_timeout : 60m
99
- command : |
100
- docker load < /tmp/docker/nipype-base.tar.gz
101
75
- run :
102
76
name : Get test dependencies and generate Dockerfiles
103
77
command : |
@@ -110,86 +84,49 @@ jobs:
110
84
sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'$CIRCLE_TAG'/" nipype/info.py
111
85
fi
112
86
- run :
113
- name : Build main image (py27 )
87
+ name : Build main image (py36 )
114
88
no_output_timeout : 60m
115
89
command : |
116
90
e=1 && for i in {1..5}; do
117
91
docker build \
118
92
--rm=false \
119
- --tag nipype/nipype:py27 \
120
- --build-arg PYTHON_VERSION_MAJOR=2 \
121
- --build-arg PYTHON_VERSION_MINOR=7 \
93
+ --tag nipype/nipype:latest \
94
+ --tag nipype/nipype:py36 \
122
95
--build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
123
96
--build-arg VCS_REF="$(git rev-parse --short HEAD)" \
124
- --build-arg VERSION="${CIRCLE_TAG}-py27 " /home/circleci/nipype \
97
+ --build-arg VERSION="${CIRCLE_TAG}" /home/circleci/nipype \
125
98
&& e=0 && break || sleep 15
126
99
done && [ "$e" -eq "0" ]
127
100
- run :
128
- name : Save Docker images to workspace
129
- no_output_timeout : 60m
130
- command : |
131
- docker save nipype/nipype:py27 | gzip -1 > /tmp/docker/nipype-py27.tar.gz \
132
- && du -h /tmp/docker/nipype-py27.tar.gz
133
- - persist_to_workspace :
134
- root : /tmp
135
- paths :
136
- - docker/*
137
-
138
-
139
- build_py3 :
140
- machine :
141
- # Ubuntu 14.04 with Docker 17.10.0-ce
142
- image : circleci/classic:201710-02
143
- working_directory : /home/circleci/nipype
144
- steps :
145
- - checkout :
146
- path : /home/circleci/nipype
147
- - attach_workspace :
148
- at : /tmp
149
- - run :
150
- name : Load saved Docker images.
151
- no_output_timeout : 60m
152
- command : |
153
- docker load < /tmp/docker/nipype-base.tar.gz
154
- - run :
155
- name : Get test dependencies and generate Dockerfiles
156
- command : |
157
- pip install --no-cache-dir codecov
158
- make gen-dockerfiles
159
- - run :
160
- name : Modify Nipype version if necessary
161
- command : |
162
- if [ "$CIRCLE_TAG" != "" ]; then
163
- sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'$CIRCLE_TAG'/" nipype/info.py
164
- fi
165
- - run :
166
- name : Build main image (py36)
101
+ name : Build main image (py27)
167
102
no_output_timeout : 60m
168
103
command : |
169
104
e=1 && for i in {1..5}; do
170
105
docker build \
171
106
--rm=false \
172
- --tag nipype/nipype:latest \
173
- --tag nipype/nipype:py36 \
107
+ --tag nipype/nipype:py27 \
108
+ --build-arg PYTHON_VERSION_MAJOR=2 \
109
+ --build-arg PYTHON_VERSION_MINOR=7 \
174
110
--build-arg BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
175
111
--build-arg VCS_REF="$(git rev-parse --short HEAD)" \
176
- --build-arg VERSION="${CIRCLE_TAG}" /home/circleci/nipype \
112
+ --build-arg VERSION="${CIRCLE_TAG}-py27 " /home/circleci/nipype \
177
113
&& e=0 && break || sleep 15
178
114
done && [ "$e" -eq "0" ]
179
115
- run :
180
116
name : Save Docker images to workspace
181
117
no_output_timeout : 60m
182
118
command : |
183
- docker save nipype/nipype:latest \
184
- nipype/nipype:py36 | gzip -1 > /tmp/docker/nipype-latest-py36.tar.gz \
185
- && du -h /tmp/docker/nipype-latest-py36.tar.gz
119
+ docker save nipype/nipype:base \
120
+ nipype/nipype:latest \
121
+ nipype/nipype:py27 \
122
+ nipype/nipype:py36 | gzip -1 > /tmp/docker/nipype-base-latest-py36-py27.tar.gz \
123
+ && du -h /tmp/docker/nipype-base-latest-py36-py27.tar.gz
186
124
- persist_to_workspace :
187
125
root : /tmp
188
126
paths :
189
127
- docker/*
190
128
191
-
192
- build_and_test :
129
+ test :
193
130
machine :
194
131
# Ubuntu 14.04 with Docker 17.10.0-ce
195
132
image : circleci/classic:201710-02
@@ -201,9 +138,7 @@ jobs:
201
138
name : Load saved Docker images.
202
139
no_output_timeout : 60m
203
140
command : |
204
- docker load < /tmp/docker/nipype-base.tar.gz \
205
- && docker load < /tmp/docker/nipype-py27.tar.gz \
206
- && docker load < /tmp/docker/nipype-latest-py36.tar.gz
141
+ docker load < /tmp/docker/nipype-base-latest-py36-py27.tar.gz
207
142
- checkout :
208
143
path : /home/circleci/nipype
209
144
- run :
@@ -275,22 +210,15 @@ workflows:
275
210
build_test_deploy :
276
211
jobs :
277
212
- compare_base_dockerfiles
278
- - fetch_base :
213
+ - build_images :
279
214
requires :
280
215
- compare_base_dockerfiles
281
- - build_py2 :
282
- requires :
283
- - fetch_base
284
- - build_py3 :
285
- requires :
286
- - fetch_base
287
- - build_and_test :
216
+ - test :
288
217
requires :
289
- - build_py2
290
- - build_py3
218
+ - build_images
291
219
- deploy :
292
220
filters :
293
221
branches :
294
222
only : master
295
223
requires :
296
- - build_and_test
224
+ - test
0 commit comments