@@ -17,65 +17,51 @@ defaults:
17
17
fi
18
18
19
19
docker_image : &docker_image
20
- image : cimg/base:2023.10
20
+ image : cimg/base:2024.11
21
21
auth :
22
22
username : $DOCKER_USER
23
23
password : $DOCKER_PASS
24
24
25
- build_image : &build_image
26
- run :
27
- name : Build Docker BMO Image
28
- command : |
29
- docker build \
30
- --build-arg CI="$CI" \
31
- --build-arg CIRCLE_SHA1="$CIRCLE_SHA1" \
32
- --build-arg CIRCLE_BUILD_URL="$CIRCLE_BUILD_URL" \
33
- --target base \
34
- -t bmo .
35
-
36
- build_selenium_image : &build_selenium_image
37
- run :
38
- name : Build Selenium Image
39
- command : |
40
- docker build \
41
- --build-arg CI="$CI" \
42
- --build-arg CIRCLE_SHA1="$CIRCLE_SHA1" \
43
- --build-arg CIRCLE_BUILD_URL="$CIRCLE_BUILD_URL" \
44
- --target test \
45
- -t bmo .
46
-
47
25
store_log : &store_log
48
26
store_artifacts :
49
27
path : bugzilla.log
50
28
destination : bugzilla.log
51
29
30
+ commands :
31
+ # Only used for local jobs docker execution
32
+ setup_local_docker :
33
+ steps :
34
+ - run :
35
+ name : Use sudo docker in local builds
36
+ command : |
37
+ if [[ $CIRCLE_SHELL_ENV == *"localbuild"* ]]; then
38
+ sudo chmod u+s $(which docker)
39
+ fi
52
40
jobs :
53
41
build :
54
42
docker :
55
43
- *docker_image
56
44
steps :
57
45
- setup_remote_docker
46
+ - setup_local_docker
58
47
- checkout
59
48
- *docker_login
60
- - *build_image
61
49
- run : |
62
50
[[ -d build_info ]] || mkdir build_info
63
51
- attach_workspace :
64
52
at : build_info
65
53
- run :
66
- name : build version.json
67
- command : |
68
- docker-compose -f docker-compose.test.yml run bmo.test version | sed '1d' > build_info/version.json
69
- - run :
70
- name : build push data
54
+ name : build version.json and push data
71
55
command : |
72
- docker-compose -f docker-compose.test.yml run --name push_data bmo.test push_data
73
- docker cp push_data:/app/build_info/blog.push.txt build_info/blog.push.txt
74
- docker cp push_data:/app/build_info/markdown.push.txt build_info/markdown.push.txt
75
- docker cp push_data:/app/build_info/bug.push.txt build_info/bug.push.txt
76
- docker cp push_data:/app/build_info/email.push.txt build_info/email.push.txt
77
- docker cp push_data:/app/build_info/tag.txt build_info/tag.txt
78
- docker cp push_data:/app/build_info/wiki.push.txt build_info/wiki.push.txt
56
+ docker-compose build --build-arg CIRCLE_SHA1="$CIRCLE_SHA1" --build-arg CIRCLE_BUILD_URL="$CIRCLE_BUILD_URL" bmo.test
57
+ docker-compose run --name push_data bmo.test push_data
58
+ docker cp push_data:/app/push_data/blog.push.txt build_info/blog.push.txt
59
+ docker cp push_data:/app/push_data/markdown.push.txt build_info/markdown.push.txt
60
+ docker cp push_data:/app/push_data/bug.push.txt build_info/bug.push.txt
61
+ docker cp push_data:/app/push_data/email.push.txt build_info/email.push.txt
62
+ docker cp push_data:/app/push_data/tag.txt build_info/tag.txt
63
+ docker cp push_data:/app/push_data/wiki.push.txt build_info/wiki.push.txt
64
+ docker cp push_data:/app/version.json build_info/version.json
79
65
docker rm push_data
80
66
- run :
81
67
name : only publish if tag exists
106
92
echo yes > build_info/only_version_changed.txt
107
93
- persist_to_workspace :
108
94
root : build_info
109
- paths : ["*.txt"]
95
+ paths : ["*.txt", "*.json" ]
110
96
- store_artifacts :
111
97
path : build_info
112
98
- *store_log
@@ -116,14 +102,16 @@ jobs:
116
102
- *docker_image
117
103
steps :
118
104
- setup_remote_docker
105
+ - setup_local_docker
119
106
- checkout
120
107
- *docker_login
121
- - *build_image
122
108
- attach_workspace :
123
109
at : build_info
124
110
- deploy :
125
111
command : |
126
112
[[ -n "$DOCKERHUB_REPO" && -n "$DOCKER_USER" && -n "$DOCKER_PASS" ]] || exit 0
113
+ docker build --build-arg CIRCLE_SHA1="$CIRCLE_SHA1" --build-arg CIRCLE_BUILD_URL="$CIRCLE_BUILD_URL" \
114
+ --tag bmo --target base .
127
115
if [[ "$CIRCLE_BRANCH" == "master" ]]; then
128
116
TAG="$(cat build_info/tag.txt)"
129
117
if [[ -n "$TAG" && -f build_info/publish.txt ]]; then
@@ -148,9 +136,9 @@ jobs:
148
136
- *docker_image
149
137
steps :
150
138
- setup_remote_docker
139
+ - setup_local_docker
151
140
- checkout
152
141
- *docker_login
153
- - *build_image
154
142
- run : |
155
143
[[ -d artifacts ]] || mkdir artifacts
156
144
- attach_workspace :
@@ -159,8 +147,7 @@ jobs:
159
147
name : run sanity tests
160
148
command : |
161
149
[[ -f build_info/only_version_changed.txt ]] && exit 0
162
- docker-compose -f docker-compose.test.yml run --no-deps bmo.test \
163
- test_sanity t/*.t extensions/*/t/*.t
150
+ docker-compose -f docker-compose.test.yml run --build --no-deps bmo.test test_sanity t/*.t extensions/*/t/*.t
164
151
- store_artifacts :
165
152
path : artifacts
166
153
- *store_log
@@ -170,9 +157,9 @@ jobs:
170
157
- *docker_image
171
158
steps :
172
159
- setup_remote_docker
160
+ - setup_local_docker
173
161
- checkout
174
162
- *docker_login
175
- - *build_image
176
163
- run : |
177
164
[[ -d artifacts ]] || mkdir artifacts
178
165
- attach_workspace :
@@ -181,7 +168,7 @@ jobs:
181
168
name : run webservice tests
182
169
command : |
183
170
[[ -f build_info/only_version_changed.txt ]] && exit 0
184
- docker-compose -f docker-compose.test.yml run bmo.test test_webservices
171
+ docker-compose -f docker-compose.test.yml run --build bmo.test test_webservices
185
172
- store_artifacts :
186
173
path : artifacts
187
174
- *store_log
@@ -191,9 +178,9 @@ jobs:
191
178
- *docker_image
192
179
steps :
193
180
- setup_remote_docker
181
+ - setup_local_docker
194
182
- checkout
195
183
- *docker_login
196
- - *build_selenium_image
197
184
- run : |
198
185
[[ -d artifacts ]] || mkdir artifacts
199
186
- attach_workspace :
@@ -202,7 +189,7 @@ jobs:
202
189
name : run selenium tests
203
190
command : |
204
191
[[ -f build_info/only_version_changed.txt ]] && exit 0
205
- docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=1 bmo.test test_selenium
192
+ docker-compose -f docker-compose.test.yml run --build - e SELENIUM_GROUP=1 bmo.test test_selenium
206
193
- store_artifacts :
207
194
path : artifacts
208
195
- *store_log
@@ -212,9 +199,9 @@ jobs:
212
199
- *docker_image
213
200
steps :
214
201
- setup_remote_docker
202
+ - setup_local_docker
215
203
- checkout
216
204
- *docker_login
217
- - *build_selenium_image
218
205
- run : |
219
206
[[ -d artifacts ]] || mkdir artifacts
220
207
- attach_workspace :
@@ -223,7 +210,7 @@ jobs:
223
210
name : run selenium tests
224
211
command : |
225
212
[[ -f build_info/only_version_changed.txt ]] && exit 0
226
- docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=2 bmo.test test_selenium 2
213
+ docker-compose -f docker-compose.test.yml run --build - e SELENIUM_GROUP=2 bmo.test test_selenium 2
227
214
- store_artifacts :
228
215
path : artifacts
229
216
- *store_log
@@ -233,9 +220,9 @@ jobs:
233
220
- *docker_image
234
221
steps :
235
222
- setup_remote_docker
223
+ - setup_local_docker
236
224
- checkout
237
225
- *docker_login
238
- - *build_selenium_image
239
226
- run : |
240
227
[[ -d artifacts ]] || mkdir artifacts
241
228
- attach_workspace :
@@ -244,7 +231,7 @@ jobs:
244
231
name : run selenium tests
245
232
command : |
246
233
[[ -f build_info/only_version_changed.txt ]] && exit 0
247
- docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=3 bmo.test test_selenium 3
234
+ docker-compose -f docker-compose.test.yml run --build - e SELENIUM_GROUP=3 bmo.test test_selenium 3
248
235
- store_artifacts :
249
236
path : artifacts
250
237
- *store_log
@@ -254,9 +241,9 @@ jobs:
254
241
- *docker_image
255
242
steps :
256
243
- setup_remote_docker
244
+ - setup_local_docker
257
245
- checkout
258
246
- *docker_login
259
- - *build_selenium_image
260
247
- run : |
261
248
[[ -d artifacts ]] || mkdir artifacts
262
249
- attach_workspace :
@@ -265,7 +252,7 @@ jobs:
265
252
name : run selenium tests
266
253
command : |
267
254
[[ -f build_info/only_version_changed.txt ]] && exit 0
268
- docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=4 bmo.test test_selenium 4
255
+ docker-compose -f docker-compose.test.yml run --build - e SELENIUM_GROUP=4 bmo.test test_selenium 4
269
256
- store_artifacts :
270
257
path : artifacts
271
258
- *store_log
@@ -275,9 +262,9 @@ jobs:
275
262
- *docker_image
276
263
steps :
277
264
- setup_remote_docker
265
+ - setup_local_docker
278
266
- checkout
279
267
- *docker_login
280
- - *build_selenium_image
281
268
- run : |
282
269
[[ -d artifacts ]] || mkdir artifacts
283
270
- attach_workspace :
@@ -286,7 +273,7 @@ jobs:
286
273
name : run bmo specific tests
287
274
command : |
288
275
[[ -f build_info/only_version_changed.txt ]] && exit 0
289
- docker-compose -f docker-compose.test.yml run bmo.test test_bmo -q -f t/bmo/*.t
276
+ docker-compose -f docker-compose.test.yml run --build bmo.test test_bmo -q -f t/bmo/*.t
290
277
- *store_log
291
278
292
279
workflows :
0 commit comments