Skip to content

Commit 4823830

Browse files
authored
Merge branch 'master' into 1879792
2 parents 9e6a8a3 + 70544f7 commit 4823830

File tree

212 files changed

+9714
-5194
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+9714
-5194
lines changed

Diff for: .circleci/config.yml

+40-53
Original file line numberDiff line numberDiff line change
@@ -17,65 +17,51 @@ defaults:
1717
fi
1818
1919
docker_image: &docker_image
20-
image: cimg/base:2023.10
20+
image: cimg/base:2024.11
2121
auth:
2222
username: $DOCKER_USER
2323
password: $DOCKER_PASS
2424

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-
4725
store_log: &store_log
4826
store_artifacts:
4927
path: bugzilla.log
5028
destination: bugzilla.log
5129

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
5240
jobs:
5341
build:
5442
docker:
5543
- *docker_image
5644
steps:
5745
- setup_remote_docker
46+
- setup_local_docker
5847
- checkout
5948
- *docker_login
60-
- *build_image
6149
- run: |
6250
[[ -d build_info ]] || mkdir build_info
6351
- attach_workspace:
6452
at: build_info
6553
- 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
7155
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
7965
docker rm push_data
8066
- run:
8167
name: only publish if tag exists
@@ -106,7 +92,7 @@ jobs:
10692
echo yes > build_info/only_version_changed.txt
10793
- persist_to_workspace:
10894
root: build_info
109-
paths: ["*.txt"]
95+
paths: ["*.txt", "*.json"]
11096
- store_artifacts:
11197
path: build_info
11298
- *store_log
@@ -116,14 +102,16 @@ jobs:
116102
- *docker_image
117103
steps:
118104
- setup_remote_docker
105+
- setup_local_docker
119106
- checkout
120107
- *docker_login
121-
- *build_image
122108
- attach_workspace:
123109
at: build_info
124110
- deploy:
125111
command: |
126112
[[ -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 .
127115
if [[ "$CIRCLE_BRANCH" == "master" ]]; then
128116
TAG="$(cat build_info/tag.txt)"
129117
if [[ -n "$TAG" && -f build_info/publish.txt ]]; then
@@ -148,9 +136,9 @@ jobs:
148136
- *docker_image
149137
steps:
150138
- setup_remote_docker
139+
- setup_local_docker
151140
- checkout
152141
- *docker_login
153-
- *build_image
154142
- run: |
155143
[[ -d artifacts ]] || mkdir artifacts
156144
- attach_workspace:
@@ -159,8 +147,7 @@ jobs:
159147
name: run sanity tests
160148
command: |
161149
[[ -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
164151
- store_artifacts:
165152
path: artifacts
166153
- *store_log
@@ -170,9 +157,9 @@ jobs:
170157
- *docker_image
171158
steps:
172159
- setup_remote_docker
160+
- setup_local_docker
173161
- checkout
174162
- *docker_login
175-
- *build_image
176163
- run: |
177164
[[ -d artifacts ]] || mkdir artifacts
178165
- attach_workspace:
@@ -181,7 +168,7 @@ jobs:
181168
name: run webservice tests
182169
command: |
183170
[[ -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
185172
- store_artifacts:
186173
path: artifacts
187174
- *store_log
@@ -191,9 +178,9 @@ jobs:
191178
- *docker_image
192179
steps:
193180
- setup_remote_docker
181+
- setup_local_docker
194182
- checkout
195183
- *docker_login
196-
- *build_selenium_image
197184
- run: |
198185
[[ -d artifacts ]] || mkdir artifacts
199186
- attach_workspace:
@@ -202,7 +189,7 @@ jobs:
202189
name: run selenium tests
203190
command: |
204191
[[ -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
206193
- store_artifacts:
207194
path: artifacts
208195
- *store_log
@@ -212,9 +199,9 @@ jobs:
212199
- *docker_image
213200
steps:
214201
- setup_remote_docker
202+
- setup_local_docker
215203
- checkout
216204
- *docker_login
217-
- *build_selenium_image
218205
- run: |
219206
[[ -d artifacts ]] || mkdir artifacts
220207
- attach_workspace:
@@ -223,7 +210,7 @@ jobs:
223210
name: run selenium tests
224211
command: |
225212
[[ -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
227214
- store_artifacts:
228215
path: artifacts
229216
- *store_log
@@ -233,9 +220,9 @@ jobs:
233220
- *docker_image
234221
steps:
235222
- setup_remote_docker
223+
- setup_local_docker
236224
- checkout
237225
- *docker_login
238-
- *build_selenium_image
239226
- run: |
240227
[[ -d artifacts ]] || mkdir artifacts
241228
- attach_workspace:
@@ -244,7 +231,7 @@ jobs:
244231
name: run selenium tests
245232
command: |
246233
[[ -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
248235
- store_artifacts:
249236
path: artifacts
250237
- *store_log
@@ -254,9 +241,9 @@ jobs:
254241
- *docker_image
255242
steps:
256243
- setup_remote_docker
244+
- setup_local_docker
257245
- checkout
258246
- *docker_login
259-
- *build_selenium_image
260247
- run: |
261248
[[ -d artifacts ]] || mkdir artifacts
262249
- attach_workspace:
@@ -265,7 +252,7 @@ jobs:
265252
name: run selenium tests
266253
command: |
267254
[[ -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
269256
- store_artifacts:
270257
path: artifacts
271258
- *store_log
@@ -275,9 +262,9 @@ jobs:
275262
- *docker_image
276263
steps:
277264
- setup_remote_docker
265+
- setup_local_docker
278266
- checkout
279267
- *docker_login
280-
- *build_selenium_image
281268
- run: |
282269
[[ -d artifacts ]] || mkdir artifacts
283270
- attach_workspace:
@@ -286,7 +273,7 @@ jobs:
286273
name: run bmo specific tests
287274
command: |
288275
[[ -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
290277
- *store_log
291278

292279
workflows:

Diff for: .editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ indent_style = space
1111
indent_size = 2
1212

1313
# 2 space indentation for HTML, CSS, JavaScript and YAML files
14-
[.{html,tmpl,css,js,yml}]
14+
[*.{html,tmpl,css,js,yml}]
1515
indent_style = space
1616
indent_size = 2
1717

Diff for: .github/workflows/ci.yml

+14-14
Original file line numberDiff line numberDiff line change
@@ -8,75 +8,75 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: actions/checkout@v3
11-
- name: Build the Docker image
12-
run: docker build -t bmo --target base .
1311
- name: Install docker-compose
1412
run: sudo apt update && sudo apt install -y docker-compose
13+
- name: Build Docker test images
14+
run: docker-compose -f docker-compose.test.yml build bmo.test
1515
- name: Run sanity tests
1616
run: docker-compose -f docker-compose.test.yml run --no-deps bmo.test test_sanity t/*.t extensions/*/t/*.t
1717

1818
test_webservices:
1919
runs-on: ubuntu-latest
2020
steps:
2121
- uses: actions/checkout@v3
22-
- name: Build the Docker image
23-
run: docker build -t bmo --target base .
2422
- name: Install docker-compose
2523
run: sudo apt update && sudo apt install -y docker-compose
24+
- name: Build Docker test images
25+
run: docker-compose -f docker-compose.test.yml build
2626
- name: Run webservice tests
2727
run: docker-compose -f docker-compose.test.yml run bmo.test test_webservices
2828

2929
test_bmo:
3030
runs-on: ubuntu-latest
3131
steps:
3232
- uses: actions/checkout@v3
33-
- name: Build the Docker image
34-
run: docker build -t bmo --target test .
3533
- name: Install docker-compose
3634
run: sudo apt update && sudo apt install -y docker-compose
35+
- name: Build Docker test images
36+
run: docker-compose -f docker-compose.test.yml build
3737
- name: Run bmo specific tests
3838
run: docker-compose -f docker-compose.test.yml run -e CI=1 bmo.test test_bmo -q -f t/bmo/*.t
3939

4040
test_selenium_1:
4141
runs-on: ubuntu-latest
4242
steps:
4343
- uses: actions/checkout@v3
44-
- name: Build the Docker image
45-
run: docker build -t bmo --target test .
4644
- name: Install docker-compose
4745
run: sudo apt update && sudo apt install -y docker-compose
46+
- name: Build Docker test images
47+
run: docker-compose -f docker-compose.test.yml build
4848
- name: Run Selenium tests (1)
4949
run: docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=1 bmo.test test_selenium
5050

5151
test_selenium_2:
5252
runs-on: ubuntu-latest
5353
steps:
5454
- uses: actions/checkout@v3
55-
- name: Build the Docker image
56-
run: docker build -t bmo --target test .
5755
- name: Install docker-compose
5856
run: sudo apt update && sudo apt install -y docker-compose
57+
- name: Build Docker test images
58+
run: docker-compose -f docker-compose.test.yml build
5959
- name: Run Selenium tests (2)
6060
run: docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=2 bmo.test test_selenium
6161

6262
test_selenium_3:
6363
runs-on: ubuntu-latest
6464
steps:
6565
- uses: actions/checkout@v3
66-
- name: Build the Docker image
67-
run: docker build -t bmo --target test .
6866
- name: Install docker-compose
6967
run: sudo apt update && sudo apt install -y docker-compose
68+
- name: Build Docker test images
69+
run: docker-compose -f docker-compose.test.yml build
7070
- name: Run Selenium tests (3)
7171
run: docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=3 bmo.test test_selenium
7272

7373
test_selenium_4:
7474
runs-on: ubuntu-latest
7575
steps:
7676
- uses: actions/checkout@v3
77-
- name: Build the Docker image
78-
run: docker build -t bmo --target test .
7977
- name: Install docker-compose
8078
run: sudo apt update && sudo apt install -y docker-compose
79+
- name: Build Docker test images
80+
run: docker-compose -f docker-compose.test.yml build
8181
- name: Run Selenium tests (4)
8282
run: docker-compose -f docker-compose.test.yml run -e SELENIUM_GROUP=4 bmo.test test_selenium

Diff for: .github/workflows/deploy.yml

+4-8
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,13 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- uses: actions/checkout@v3
19-
- name: Build the Docker image
20-
run: docker build -t bmo --target base .
2119
- name: Create directory for artifacts
2220
run: mkdir build_info
2321
- name: Install docker-compose
2422
run: sudo apt update && sudo apt install -y docker-compose
25-
- name: Build version.json
26-
run: |
27-
docker-compose -f docker-compose.test.yml run --no-deps --name version_json --entrypoint true bmo.test
28-
docker cp version_json:/app/version.json build_info/version.json
29-
docker rm version_json
30-
- name: Build push data
23+
- name: Build Docker image
24+
run: docker-compose -f docker-compose.test.yml build bmo.test
25+
- name: Copy version.json and build push data
3126
run: |
3227
docker-compose -f docker-compose.test.yml run --no-deps --name push_data bmo.test push_data
3328
docker cp push_data:/app/build_info/blog.push.txt build_info/blog.push.txt
@@ -36,6 +31,7 @@ jobs:
3631
docker cp push_data:/app/build_info/email.push.txt build_info/email.push.txt
3732
docker cp push_data:/app/build_info/tag.txt build_info/tag.txt
3833
docker cp push_data:/app/build_info/wiki.push.txt build_info/wiki.push.txt
34+
docker cp push_data:/app/version.json build_info/version.json
3935
docker rm push_data
4036
- name: Upload artifacts
4137
uses: actions/upload-artifact@v3

0 commit comments

Comments
 (0)