@@ -27,57 +27,66 @@ const PACKAGE_BUILD_VARIANTS = [
2727 {
2828 name: 'package-ubuntu',
2929 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.
3034 run_on: 'ubuntu1604-large',
35+ silk_asset_group: 'compass-ubuntu',
3136 },
3237 {
3338 name: 'package-windows',
3439 display_name: 'Package Windows',
3540 run_on: 'windows-vsCurrent-large',
41+ silk_asset_group: 'compass-windows',
3642 },
3743 {
3844 name: 'package-rhel',
3945 display_name: 'Package RHEL',
4046 run_on: 'rhel80-large',
47+ silk_asset_group: 'compass-rhel',
4148 },
4249 {
4350 name: 'package-macos-x64',
4451 display_name: 'Package MacOS Intel',
45- run_on: 'macos-1100'
52+ run_on: 'macos-1100',
53+ silk_asset_group: 'compass-macos',
4654 },
4755 {
4856 name: 'package-macos-arm',
4957 display_name: 'Package MacOS Arm64',
50- run_on: 'macos-1100-arm64'
58+ run_on: 'macos-1100-arm64',
59+ silk_asset_group: 'compass-macos-arm',
5160 }
5261];
5362
5463const TEST_PACKAGED_APP_BUILD_VARIANTS = [
5564 {
56- name: 'test-packaged-app -ubuntu',
65+ name: 'test-server -ubuntu',
5766 display_name: 'Ubuntu 20.04',
5867 run_on: 'ubuntu2004-large',
5968 depends_on: 'package-ubuntu',
6069 },
6170 {
62- name: 'test-packaged-app -windows',
71+ name: 'test-server -windows',
6372 display_name: 'Windows 10',
6473 run_on: 'windows-vsCurrent-large',
6574 depends_on: 'package-windows',
6675 },
6776 {
68- name: 'test-packaged-app -rhel',
77+ name: 'test-server -rhel',
6978 display_name: 'RHEL 8.0',
7079 run_on: 'rhel80-large',
7180 depends_on: 'package-rhel',
7281 },
7382 {
74- name: 'test-packaged-app -macos-11-arm',
83+ name: 'test-server -macos-11-arm',
7584 display_name: 'MacOS arm64 11',
7685 run_on: 'macos-1100-arm64-gui',
7786 depends_on: 'package-macos-arm'
7887 },
7988 {
80- name: 'test-packaged-app -macos-11-x64',
89+ name: 'test-server -macos-11-x64',
8190 display_name: 'MacOS x64 11',
8291 run_on: 'macos-1100-gui',
8392 patchable: false,
@@ -96,8 +105,6 @@ const EOL_SERVER_VERSIONS = [
96105 { name: '5x-enterprise', version: '5.x.x-enterprise' }
97106];
98107
99- // NOTE: the order matters here. The latest element of this array is used
100- // to test the packaged app.
101108const MAINTAINED_SERVER_VERSIONS = [
102109 { name: '60x-community', version: '6.0.x' },
103110 { name: '60x-enterprise', version: '6.0.x-enterprise' },
@@ -116,44 +123,17 @@ const SERVER_VERSIONS = [
116123];
117124
118125const COMPASS_DISTRIBUTIONS = ["compass", "compass-isolated", "compass-readonly"];
126+
127+ const BROWSERS = ["chrome", "firefox"];
128+
129+ const E2E_TEST_GROUPS_NUMBER = 3;
130+ const E2E_TEST_GROUPS = Array.from({ length: E2E_TEST_GROUPS_NUMBER }).map((_, i) => ({number: i + 1}));
119131% >
120132
121133#
122134# Build Variants
123135#
124136buildvariants :
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-
157137 - name : check
158138 display_name : Check
159139 run_on : ubuntu2004-large
@@ -177,7 +157,8 @@ buildvariants:
177157 # package
178158<% for (const buildVariant of PACKAGE_BUILD_VARIANTS) { % >
179159 - name : <%= buildVariant.name %>
180-
160+ expansions :
161+ silk_asset_group : <%= buildVariant.silk_asset_group %>
181162 display_name : <%= buildVariant.display_name %>
182163 run_on : <%= buildVariant.run_on %>
183164 tasks :
@@ -194,9 +175,11 @@ buildvariants:
194175 - name : package-compass
195176 variant : package-ubuntu
196177 tasks :
197- <% for (const serverVersion of EOL_SERVER_VERSIONS) { %>
198- - name : test-packaged-app-<%= serverVersion.name %>
199- <% } % >
178+ <% for (const serverVersion of EOL_SERVER_VERSIONS) { % >
179+ <% for (const group of E2E_TEST_GROUPS) { % >
180+ - name : test-server-<%= serverVersion.name %>-<%= group.number %>
181+ <% } % >
182+ <% } % >
200183
201184 - name : test-maintained-servers
202185 display_name : Test Maintained Servers
@@ -206,9 +189,11 @@ buildvariants:
206189 - name : package-compass
207190 variant : package-ubuntu
208191 tasks :
209- <% for (const serverVersion of MAINTAINED_SERVER_VERSIONS) { %>
210- - name : test-packaged-app-<%= serverVersion.name %>
211- <% } % >
192+ <% for (const serverVersion of MAINTAINED_SERVER_VERSIONS) { % >
193+ <% for (const group of E2E_TEST_GROUPS) { % >
194+ - name : test-server-<%= serverVersion.name %>-<%= group.number %>
195+ <% } % >
196+ <% } % >
212197
213198 - name : test-latest-alpha
214199 display_name : Test Latest Alpha Server
@@ -218,7 +203,10 @@ buildvariants:
218203 - name : package-compass
219204 variant : package-ubuntu
220205 tasks :
221- - name : test-packaged-app-<%= TEST_LATEST_ALPHA_SERVER_VERSION.name %>
206+ <% for (const group of E2E_TEST_GROUPS) { % >
207+ - name : test-server-<%= TEST_LATEST_ALPHA_SERVER_VERSION.name %>-<%= group.number %>
208+ <% } % >
209+
222210
223211 # test-packaged-app
224212<% for (const buildVariant of TEST_PACKAGED_APP_BUILD_VARIANTS) { % >
@@ -230,7 +218,9 @@ buildvariants:
230218 - name : package-compass
231219 variant : <%= buildVariant.depends_on %>
232220 tasks :
233- - name : test-packaged-app-<%= MAINTAINED_SERVER_VERSIONS[MAINTAINED_SERVER_VERSIONS.length - 1].name %>
221+ <% for (const group of E2E_TEST_GROUPS) { % >
222+ - name : test-packaged-app-<%= group.number %>
223+ <% } % >
234224<% } % >
235225
236226 - name : publish
@@ -242,6 +232,42 @@ buildvariants:
242232 - name : publish-dev-release-info
243233 - name : create_static_analysis_report
244234
235+ - name : connectivity-tests
236+ display_name : Connectivity Tests
237+ run_on : ubuntu2004-large
238+ tasks :
239+ - name : test-connectivity
240+
241+ - name : e2e-coverage
242+ display_name : E2E Coverage
243+ run_on : ubuntu2004-large
244+ tasks :
245+ <% for(const group of E2E_TEST_GROUPS) { % >
246+ - name : e2e-coverage-<%= group.number %>
247+ <% } % >
248+
249+ - name : csfle-tests
250+ display_name : CSFLE Tests
251+ run_on : ubuntu2004-large
252+ tasks :
253+ - name : test-csfle
254+
255+ - name : test-web-sandbox
256+ display_name : Test Web Sandbox
257+ run_on : ubuntu2004-large
258+ tasks :
259+ <% for (const browser of BROWSERS) { % >
260+ <% for(const group of E2E_TEST_GROUPS) { % >
261+ - name : test-web-sandbox-<%= browser %>-<%= group.number %>
262+ <% } % >
263+ <% } % >
264+
265+ - name : generate-vulnerability-report
266+ display_name : Vulnerability Report
267+ run_on : ubuntu2004-large
268+ tasks :
269+ - name : generate-vulnerability-report
270+
245271#
246272# Tasks
247273#
@@ -292,15 +318,19 @@ tasks:
292318 vars :
293319 debug : ' compass*,electron*,hadron*,mongo*'
294320
295- - name : e2e-coverage
296- tags : ['run-on-pr']
321+ <% for(const group of E2E_TEST_GROUPS) { % >
322+ - name : e2e-coverage-<%= group.number %>
323+ tags : ['required-for-publish', 'run-on-pr']
297324 commands :
298325 - func : prepare
299326 - func : install
300327 - func : bootstrap
301328 - func : e2e-coverage
302329 vars :
330+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
331+ e2e_test_group : <%= group.number %>
303332 debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
333+ <% } % >
304334
305335 - name : generate-vulnerability-report
306336 tags : ['required-for-publish', 'run-on-pr']
@@ -350,26 +380,35 @@ tasks:
350380 - func : prepare
351381 - func : publish-dev-release-info
352382
353- - name : test-web-sandbox-chrome
354- tags : ['required-for-publish', 'run-on-pr']
383+ <% for (const distribution of COMPASS_DISTRIBUTIONS) { % >
384+ - name : package-<%= distribution %>
385+ tags : ['required-for-publish', 'run-on-pr', 'package-task']
355386 commands :
356387 - func : prepare
357388 - func : install
358389 - func : bootstrap
359390 vars :
360- scope : ' compass-e2e-tests '
391+ scope : ' @mongodb-js/webpack-config-compass '
361392 - func : apply-compass-target-expansion
362393 vars :
363- compass_distribution : compass
364- - func : test-web-sandbox
394+ compass_distribution : <%= distribution %>
395+ - func : spawn-signing-server
396+ - func : package
365397 vars :
366- mongodb_version : ' latest-alpha-enterprise'
367- browser_name : ' chrome'
368- compass_distribution : compass
369- debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
398+ debug : ' hadron*,mongo*,compass*,electron*,sign*'
399+ compass_distribution : <%= distribution %>
400+ - func : verify-artifacts
401+ - func : save-all-artifacts
402+ vars :
403+ compass_distribution : <%= distribution %>
404+ <% } % >
370405
371- - name : test-web-sandbox-firefox
372- tags : ['required-for-publish', 'run-on-pr']
406+ <% for (const serverVersion of SERVER_VERSIONS) { % >
407+ <% for(const group of E2E_TEST_GROUPS) { % >
408+ - name : test-server-<%= serverVersion.name %>-<%= group.number %>
409+ tags :
410+ - required-for-publish
411+ - run-on-pr
373412 commands :
374413 - func : prepare
375414 - func : install
@@ -379,42 +418,49 @@ tasks:
379418 - func : apply-compass-target-expansion
380419 vars :
381420 compass_distribution : compass
382- - func : test-web-sandbox
421+ - func : get-packaged-app
422+ vars :
423+ compass_distribution : compass
424+ - func : test-packaged-app
383425 vars :
384- mongodb_version : ' latest-alpha-enterprise'
385- browser_name : ' firefox'
426+ mongodb_version : ' <%= serverVersion.version % >'
386427 compass_distribution : compass
428+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
429+ e2e_test_group : <%= group.number %>
387430 debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
431+ <% } % >
432+ <% } % >
388433
389- <% for (const distribution of COMPASS_DISTRIBUTIONS) { % >
390- - name : package-<%= distribution %>
391- tags : ['required-for-publish', 'run-on-pr', 'package-task']
434+ <% for(const group of E2E_TEST_GROUPS) { % >
435+ - name : test-packaged-app-<%= group.number %>
436+ tags :
437+ - required-for-publish
438+ - run-on-pr
392439 commands :
393440 - func : prepare
394441 - func : install
395442 - func : bootstrap
396443 vars :
397- scope : ' @mongodb-js/webpack-config-compass '
444+ scope : ' compass-e2e-tests '
398445 - func : apply-compass-target-expansion
399446 vars :
400- compass_distribution : <%= distribution %>
401- - func : spawn-signing-server
402- - func : package
447+ compass_distribution : compass
448+ - func : get-packaged-app
403449 vars :
404- debug : ' hadron*,mongo*,compass*,electron*,sign*'
405- compass_distribution : <%= distribution %>
406- - func : verify-artifacts
407- - func : save-all-artifacts
450+ compass_distribution : compass
451+ - func : test-packaged-app
408452 vars :
409- compass_distribution : <%= distribution %>
453+ mongodb_version : latest
454+ compass_distribution : compass
455+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
456+ e2e_test_group : <%= group.number %>
457+ debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
410458<% } % >
411459
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
460+ <% for (const browser of BROWSERS) { % >
461+ <% for(const group of E2E_TEST_GROUPS) { % >
462+ - name : test-web-sandbox-<%= browser %>-<%= group.number %>
463+ tags : ['required-for-publish', 'run-on-pr']
418464 commands :
419465 - func : prepare
420466 - func : install
@@ -424,14 +470,15 @@ for (const serverVersion of SERVER_VERSIONS) { %>
424470 - func : apply-compass-target-expansion
425471 vars :
426472 compass_distribution : compass
427- - func : get-packaged-app
428- vars :
429- compass_distribution : compass
430- - func : test-packaged-app
473+ - func : test-web-sandbox
431474 vars :
432- mongodb_version : ' <%= serverVersion.version % >'
475+ mongodb_version : latest
476+ browser_name : ' <%= browser % >'
433477 compass_distribution : compass
478+ e2e_test_groups : <%= E2E_TEST_GROUPS.length %>
479+ e2e_test_group : <%= group.number %>
434480 debug : ' compass-e2e-tests*,electron*,hadron*,mongo*'
481+ <% } % >
435482<% } % >
436483
437484 - name : create_static_analysis_report
0 commit comments