Since T378478, tests are allocated to split_groups in alphabetical order by filename rather than round-robin. This creates less time-balanced groups - the tests for some extensions take longer than for others, and the slower extensions then slow down the split_group that they are included in.
T378797 (1112718) makes the phpunit.results.cache files from parallel CI runs available for download at https://integration.wikimedia.org. These need to be combined into a single file that can be downloaded at the start of CI runs to provide timing information.
Because the timings for integration vs. unit test runs are different for the same PHP classes, we actually need two different sets of timings. In the test groupings we currently have in CI, these configurations are referred to as database (integration) and databaseless (unit), and 1112718 makes the results caches from the two groups available for individual download.
For this task, we need to create the server that collects the individual cache results files and serves the combined result.
As part of the previous spike, the phpunit-results-cache tool (source / toolforge tool) was created, which may provide inspiration for or the basis of a solution.
Acceptance Criteria
- A server is running (possibly on toolforge) which:
- receives notifications when new parallel CI runs are complete (or polls gerrit / Jenkins to discover new completed test runs) and integrates the new results cache data into a combined results file.
- makes the combined results file available for unauthenticated download (by CI runs, for use in generating balanced split_groups).