You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#1308 takes the frontend e2e job from 14 minutes to about 5. This epic is the other half: once e2e stops being the longest job, the API chain is what the run waits on.
Measured on run 35332899202, a green run on current main:
The whole run was 20m11s. Two paths finish within three minutes of each other, which is why #1308 alone does not move the pipeline number much.
What is already done
#1284 took the image build off the critical path: the system tests run the jar and the bundle natively, so nothing downstream waits for build-images any more. That work is not repeated here.
The decisions
Split the test job before sharding it. Unit tests need no database; they were only slow because they shared a job with the integration suite.
One sharding mechanism across the repo.:tests:system, the frontend e2e suite and now :services:api:integrationTest all partition by a stable hash of the test class, so there is one pattern to learn and a class always lands on the same shard.
A shard gets its own database. The fixtures collide on unique fields, so maxParallelForks against a shared MariaDB was never an option. Six services is the cost of the split.
#1308 takes the frontend e2e job from 14 minutes to about 5. This epic is the other half: once e2e stops being the longest job, the API chain is what the run waits on.
Measured on run 35332899202, a green run on current
main:fe-static→fe-e2e18m04sapi-static5m40s →api-tests8m20sapi-static→build-images4m33s →system-tests4m44sThe whole run was 20m11s. Two paths finish within three minutes of each other, which is why #1308 alone does not move the pipeline number much.
What is already done
#1284 took the image build off the critical path: the system tests run the jar and the bundle natively, so nothing downstream waits for
build-imagesany more. That work is not repeated here.The decisions
:tests:system, the frontend e2e suite and now:services:api:integrationTestall partition by a stable hash of the test class, so there is one pattern to learn and a class always lands on the same shard.maxParallelForksagainst a shared MariaDB was never an option. Six services is the cost of the split.Slices
RecoveryControllerEmailITis 68.5s of shard 4's 114.2s.:tests:systemtoday; the API integration suite runs in six shards, and the floors read all six #1318 fixes the shape for the API suite and this carries it across.What is deliberately not here
api-static's 4m13s compile-and-cache-warm step. It gates everything, so it is the next thing worth measuring, but nothing here touches it.api-testsstarted 3m18s after its dependencies finished on the run above, and Epic: the frontend e2e job stops being a fourteen-minute wait #1308 plus the API integration suite runs in six shards, and the floors read all six #1318 together add up to twelve concurrent jobs. The plan is to measure the queue delay once both have landed and cap shard counts if the parallelism is not actually being served.