@@ -27,6 +27,10 @@ const PACKAGE_BUILD_VARIANTS = [
27
27
{
28
28
name: 'package-ubuntu',
29
29
display_name: 'Package Ubuntu',
30
+
31
+ // # NOTE: We are packaging on Ubuntu 16.04 in order to use glibc 2.23
32
+ // # when compiling/re-building addons. This ensures compatibility with other
33
+ // # debian platforms that have glibc 2.23 or newer.
30
34
run_on: 'ubuntu1604-large',
31
35
},
32
36
{
@@ -53,31 +57,31 @@ const PACKAGE_BUILD_VARIANTS = [
53
57
54
58
const TEST_PACKAGED_APP_BUILD_VARIANTS = [
55
59
{
56
- name: 'test-packaged-app -ubuntu',
60
+ name: 'test-server -ubuntu',
57
61
display_name: 'Ubuntu 20.04',
58
62
run_on: 'ubuntu2004-large',
59
63
depends_on: 'package-ubuntu',
60
64
},
61
65
{
62
- name: 'test-packaged-app -windows',
66
+ name: 'test-server -windows',
63
67
display_name: 'Windows 10',
64
68
run_on: 'windows-vsCurrent-large',
65
69
depends_on: 'package-windows',
66
70
},
67
71
{
68
- name: 'test-packaged-app -rhel',
72
+ name: 'test-server -rhel',
69
73
display_name: 'RHEL 8.0',
70
74
run_on: 'rhel80-large',
71
75
depends_on: 'package-rhel',
72
76
},
73
77
{
74
- name: 'test-packaged-app -macos-11-arm',
78
+ name: 'test-server -macos-11-arm',
75
79
display_name: 'MacOS arm64 11',
76
80
run_on: 'macos-1100-arm64-gui',
77
81
depends_on: 'package-macos-arm'
78
82
},
79
83
{
80
- name: 'test-packaged-app -macos-11-x64',
84
+ name: 'test-server -macos-11-x64',
81
85
display_name: 'MacOS x64 11',
82
86
run_on: 'macos-1100-gui',
83
87
patchable: false,
@@ -96,8 +100,6 @@ const EOL_SERVER_VERSIONS = [
96
100
{ name: '5x-enterprise', version: '5.x.x-enterprise' }
97
101
];
98
102
99
- // NOTE: the order matters here. The latest element of this array is used
100
- // to test the packaged app.
101
103
const MAINTAINED_SERVER_VERSIONS = [
102
104
{ name: '60x-community', version: '6.0.x' },
103
105
{ name: '60x-enterprise', version: '6.0.x-enterprise' },
@@ -116,44 +118,17 @@ const SERVER_VERSIONS = [
116
118
];
117
119
118
120
const COMPASS_DISTRIBUTIONS = ["compass", "compass-isolated", "compass-readonly"];
121
+
122
+ const BROWSERS = ["chrome", "firefox"];
123
+
124
+ const E2E_TEST_GROUPS_NUMBER = 3;
125
+ const E2E_TEST_GROUPS = Array.from({ length: E2E_TEST_GROUPS_NUMBER }).map((_, i) => ({number: i + 1}));
119
126
% >
120
127
121
128
#
122
129
# Build Variants
123
130
#
124
131
buildvariants :
125
- - name : connectivity-tests
126
-
127
- display_name : Connectivity Tests
128
- run_on : ubuntu2004-large
129
- tasks :
130
- - name : test-connectivity
131
-
132
- - name : generate-vulnerability-report
133
- display_name : Vulnerability Report
134
- run_on : ubuntu2004-large
135
- tasks :
136
- - name : generate-vulnerability-report
137
-
138
- - name : coverage
139
- display_name : E2E Coverage
140
- run_on : ubuntu2004-large
141
- tasks :
142
- - name : e2e-coverage
143
-
144
- - name : csfle-tests
145
- display_name : CSFLE Tests
146
- run_on : ubuntu2004-large
147
- tasks :
148
- - name : test-csfle
149
-
150
- - name : test-web-sandbox
151
- display_name : Test Web Sandbox
152
- run_on : ubuntu2004-large
153
- tasks :
154
- - name : test-web-sandbox-chrome
155
- - name : test-web-sandbox-firefox
156
-
157
132
- name : check
158
133
display_name : Check
159
134
run_on : ubuntu2004-large
@@ -194,9 +169,11 @@ buildvariants:
194
169
- name : package-compass
195
170
variant : package-ubuntu
196
171
tasks :
197
- <% for (const serverVersion of EOL_SERVER_VERSIONS) { %>
198
- - name : test-packaged-app-<%= serverVersion.name %>
199
- <% } % >
172
+ <% for (const serverVersion of EOL_SERVER_VERSIONS) { % >
173
+ <% for (const group of E2E_TEST_GROUPS) { % >
174
+ - name : test-server-<%= serverVersion.name %>-<%= group.number %>
175
+ <% } % >
176
+ <% } % >
200
177
201
178
- name : test-maintained-servers
202
179
display_name : Test Maintained Servers
@@ -206,9 +183,11 @@ buildvariants:
206
183
- name : package-compass
207
184
variant : package-ubuntu
208
185
tasks :
209
- <% for (const serverVersion of MAINTAINED_SERVER_VERSIONS) { %>
210
- - name : test-packaged-app-<%= serverVersion.name %>
211
- <% } % >
186
+ <% for (const serverVersion of MAINTAINED_SERVER_VERSIONS) { % >
187
+ <% for (const group of E2E_TEST_GROUPS) { % >
188
+ - name : test-server-<%= serverVersion.name %>-<%= group.number %>
189
+ <% } % >
190
+ <% } % >
212
191
213
192
- name : test-latest-alpha
214
193
display_name : Test Latest Alpha Server
@@ -218,7 +197,10 @@ buildvariants:
218
197
- name : package-compass
219
198
variant : package-ubuntu
220
199
tasks :
221
- - name : test-packaged-app-<%= TEST_LATEST_ALPHA_SERVER_VERSION.name %>
200
+ <% for (const group of E2E_TEST_GROUPS) { % >
201
+ - name : test-server-<%= TEST_LATEST_ALPHA_SERVER_VERSION.name %>-<%= group.number %>
202
+ <% } % >
203
+
222
204
223
205
# test-packaged-app
224
206
<% for (const buildVariant of TEST_PACKAGED_APP_BUILD_VARIANTS) { % >
@@ -230,7 +212,9 @@ buildvariants:
230
212
- name : package-compass
231
213
variant : <%= buildVariant.depends_on %>
232
214
tasks :
233
- - name : test-packaged-app-<%= MAINTAINED_SERVER_VERSIONS[MAINTAINED_SERVER_VERSIONS.length - 1].name %>
215
+ <% for (const group of E2E_TEST_GROUPS) { % >
216
+ - name : test-packaged-app-<%= group.number %>
217
+ <% } % >
234
218
<% } % >
235
219
236
220
- name : publish
@@ -242,6 +226,42 @@ buildvariants:
242
226
- name : publish-dev-release-info
243
227
- name : create_static_analysis_report
244
228
229
+ - name : connectivity-tests
230
+ display_name : Connectivity Tests
231
+ run_on : ubuntu2004-large
232
+ tasks :
233
+ - name : test-connectivity
234
+
235
+ - name : e2e-coverage
236
+ display_name : E2E Coverage
237
+ run_on : ubuntu2004-large
238
+ tasks :
239
+ <% for(const group of E2E_TEST_GROUPS) { % >
240
+ - name : e2e-coverage-<%= group.number %>
241
+ <% } % >
242
+
243
+ - name : csfle-tests
244
+ display_name : CSFLE Tests
245
+ run_on : ubuntu2004-large
246
+ tasks :
247
+ - name : test-csfle
248
+
249
+ - name : test-web-sandbox
250
+ display_name : Test Web Sandbox
251
+ run_on : ubuntu2004-large
252
+ tasks :
253
+ <% for (const browser of BROWSERS) { % >
254
+ <% for(const group of E2E_TEST_GROUPS) { % >
255
+ - name : test-web-sandbox-<%= browser %>-<%= group.number %>
256
+ <% } % >
257
+ <% } % >
258
+
259
+ - name : generate-vulnerability-report
260
+ display_name : Vulnerability Report
261
+ run_on : ubuntu2004-large
262
+ tasks :
263
+ - name : generate-vulnerability-report
264
+
245
265
#
246
266
# Tasks
247
267
#
@@ -292,15 +312,19 @@ tasks:
292
312
vars :
293
313
debug : ' compass*,electron*,hadron*,mongo*'
294
314
295
- - name : e2e-coverage
296
- tags : ['run-on-pr']
315
+ <% for(const group of E2E_TEST_GROUPS) { % >
316
+ - name : e2e-coverage-<%= group.number %>
317
+ tags : ['required-for-publish', 'run-on-pr']
297
318
commands :
298
319
- func : prepare
299
320
- func : install
300
321
- func : bootstrap
301
322
- func : e2e-coverage
302
323
vars :
324
+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
325
+ e2e_test_group : <%= group.number %>
303
326
debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
327
+ <% } % >
304
328
305
329
- name : generate-vulnerability-report
306
330
tags : ['required-for-publish', 'run-on-pr']
@@ -350,26 +374,35 @@ tasks:
350
374
- func : prepare
351
375
- func : publish-dev-release-info
352
376
353
- - name : test-web-sandbox-chrome
354
- tags : ['required-for-publish', 'run-on-pr']
377
+ <% for (const distribution of COMPASS_DISTRIBUTIONS) { % >
378
+ - name : package-<%= distribution %>
379
+ tags : ['required-for-publish', 'run-on-pr', 'package-task']
355
380
commands :
356
381
- func : prepare
357
382
- func : install
358
383
- func : bootstrap
359
384
vars :
360
- scope : ' compass-e2e-tests '
385
+ scope : ' @mongodb-js/webpack-config-compass '
361
386
- func : apply-compass-target-expansion
362
387
vars :
363
- compass_distribution : compass
364
- - func : test-web-sandbox
388
+ compass_distribution : <%= distribution %>
389
+ - func : spawn-signing-server
390
+ - func : package
365
391
vars :
366
- mongodb_version : ' latest-alpha-enterprise'
367
- browser_name : ' chrome'
368
- compass_distribution : compass
369
- debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
392
+ debug : ' hadron*,mongo*,compass*,electron*,sign*'
393
+ compass_distribution : <%= distribution %>
394
+ - func : verify-artifacts
395
+ - func : save-all-artifacts
396
+ vars :
397
+ compass_distribution : <%= distribution %>
398
+ <% } % >
370
399
371
- - name : test-web-sandbox-firefox
372
- tags : ['required-for-publish', 'run-on-pr']
400
+ <% for (const serverVersion of SERVER_VERSIONS) { % >
401
+ <% for(const group of E2E_TEST_GROUPS) { % >
402
+ - name : test-server-<%= serverVersion.name %>-<%= group.number %>
403
+ tags :
404
+ - required-for-publish
405
+ - run-on-pr
373
406
commands :
374
407
- func : prepare
375
408
- func : install
@@ -379,42 +412,49 @@ tasks:
379
412
- func : apply-compass-target-expansion
380
413
vars :
381
414
compass_distribution : compass
382
- - func : test-web-sandbox
415
+ - func : get-packaged-app
383
416
vars :
384
- mongodb_version : ' latest-alpha-enterprise'
385
- browser_name : ' firefox'
386
417
compass_distribution : compass
418
+ - func : test-packaged-app
419
+ vars :
420
+ mongodb_version : ' <%= serverVersion.version % >'
421
+ compass_distribution : compass
422
+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
423
+ e2e_test_group : <%= group.number %>
387
424
debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
425
+ <% } % >
426
+ <% } % >
388
427
389
- <% for (const distribution of COMPASS_DISTRIBUTIONS) { % >
390
- - name : package-<%= distribution %>
391
- tags : ['required-for-publish', 'run-on-pr', 'package-task']
428
+ <% for(const group of E2E_TEST_GROUPS) { % >
429
+ - name : test-packaged-app-<%= group.number %>
430
+ tags :
431
+ - required-for-publish
432
+ - run-on-pr
392
433
commands :
393
434
- func : prepare
394
435
- func : install
395
436
- func : bootstrap
396
437
vars :
397
- scope : ' @mongodb-js/webpack-config-compass '
438
+ scope : ' compass-e2e-tests '
398
439
- func : apply-compass-target-expansion
399
440
vars :
400
- compass_distribution : <%= distribution %>
401
- - func : spawn-signing-server
402
- - func : package
441
+ compass_distribution : compass
442
+ - func : get-packaged-app
403
443
vars :
404
- debug : ' hadron*,mongo*,compass*,electron*,sign*'
405
- compass_distribution : <%= distribution %>
406
- - func : verify-artifacts
407
- - func : save-all-artifacts
444
+ compass_distribution : compass
445
+ - func : test-packaged-app
408
446
vars :
409
- compass_distribution : <%= distribution %>
447
+ mongodb_version : latest
448
+ compass_distribution : compass
449
+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
450
+ e2e_test_group : <%= group.number %>
451
+ debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
410
452
<% } % >
411
453
412
- <%
413
- for (const serverVersion of SERVER_VERSIONS) { % >
414
- - name : test-packaged-app-<%= serverVersion.name %>
415
- tags :
416
- - required-for-publish
417
- - run-on-pr
454
+ <% for (const browser of BROWSERS) { % >
455
+ <% for(const group of E2E_TEST_GROUPS) { % >
456
+ - name : test-web-sandbox-<%= browser %>-<%= group.number %>
457
+ tags : ['required-for-publish', 'run-on-pr']
418
458
commands :
419
459
- func : prepare
420
460
- func : install
@@ -424,14 +464,15 @@ for (const serverVersion of SERVER_VERSIONS) { %>
424
464
- func : apply-compass-target-expansion
425
465
vars :
426
466
compass_distribution : compass
427
- - func : get-packaged-app
428
- vars :
429
- compass_distribution : compass
430
- - func : test-packaged-app
467
+ - func : test-web-sandbox
431
468
vars :
432
- mongodb_version : ' <%= serverVersion.version % >'
469
+ mongodb_version : latest
470
+ browser_name : ' <%= browser % >'
433
471
compass_distribution : compass
472
+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
473
+ e2e_test_group : <%= group.number %>
434
474
debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
475
+ <% } % >
435
476
<% } % >
436
477
437
478
- name : create_static_analysis_report
0 commit comments