#53737: build: keep CI test-shard weights per test job
Merged
Created: Sep 8, 2026, 3:37:27 AM
Merged: Sep 9, 2026, 9:16:16 AM
5 comments
Target: main
Description of Change
script/split-tests.js packed CI test shards from one weights table per platform, so a MAS job packed from darwin timings, an ASan job from plain Linux timings, and arm64 from x64. Those jobs differ by more than a constant factor, which left their shards uneven:
| job | longest shard, shared table | own table |
|---|---|---|
linux_x64_asan |
14.0 min | 11.3 min |
mas_x64 |
14.5 min | 12.4 min |
darwin_x64 |
17.9 min | 16.6 min |
darwin_arm64 |
15.3 min | 14.4 min |
linux_x64_ubsan |
7.3 min | 6.0 min |
mas_arm64 |
13.5 min | 12.4 min |
(median of the last three green push runs on main, test-step minutes)
- One table per test job, keyed as the job names its
test_artifacts_*upload (darwin_x64,mas_arm64,linux_x64_asan,win_arm64, ...). CI already exports that key asARTIFACT_KEYbefore the shard step. - A job without a table falls back to the nearest one of its build type (same arch first; MAS to darwin), then to a legacy
darwin/linux/win32table, so nothing changes on a branch that has not regenerated yet. spec/index.jsrecords the sanitizer inspec-timings.json;gen-spec-weights.jskeys tables the same way and skips the Wayland allowlist job.- Weights regenerated from every artifact of run 34181277552.
The tables will be kept fresh by a weekly roller (electron/roller) that regenerates each branch's file from its own recent runs and opens a PR when the packing has drifted.
Notes: none
Backports
42-x-y
PendingWaiting for a manual backport
43-x-y
PendingWaiting for a manual backport
44-x-y
PendingWaiting for a manual backport
45-x-y
PendingWaiting for a manual backport
Semver Impact
Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron