(core) Parallelize jenkins by running on multiple machines.

Summary:
- Get Jenkins to run on 4 agents in parallel, each executing 4 parallel test runs.
- Add a scheme for automatically selecting non-conflicting ports and Redis DB numbers.
- Add a scheme for automatically deciding how to group tests in large suites (nbrowser, server) to keep groups roughly equal.
- Add a recording of test timings, that's used for the auto-grouping.
- Fix tests that were sensitive to the order in which they were running.

Test Plan: All 5020 tests passed in 9 minutes (as opposed to the previous passing run which took 30).

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D3500
This commit is contained in:
Dmitry S
2022-07-01 16:18:23 -04:00
parent 637caf8105
commit d5ebd49eb7
3 changed files with 35 additions and 5 deletions

View File

@@ -51,9 +51,8 @@ describe('Authorizer', function() {
testUtils.setTmpLogLevel('fatal');
server = new FlexServer(0, 'test docWorker');
const docTools = createDocTools({persistAcrossCases: true, useFixturePlugins: false,
server});
server: () => (server = new FlexServer(0, 'test docWorker'))});
const docs: {[name: string]: {id: string}} = {};
// Loads the fixtures documents so that they are available to the doc worker under the correct