CI: cut the e2e job's 17 minutes on one runner (after #148) #158
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
schaefera/utStudyBIble#158
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The
e2ejob takes about 17 minutes, which is too long while we stay on one runner. Do this after the redesign (#148).Numbers (run 320,
033b7b5)light-ground93 s,red-letters72 s,module-manager59 s,running-text43 s,pinned-heading38 s).rust13.5,app6,e2e17, thenclick).The time looks like waiting rather than CPU work:
scroll-chapterstook 14 s on a 16-core machine and 16 s on the 3-vCPU runner (one case only), ande2e_tapalways spends 1 s ande2e_settleseveral seconds of quiet. This is not yet measured, hence step 1.Plan, in order
tools/e2e/run.shandlib.sh, to show how much of the job is fixed sleep. The later steps' value depends on this.red-lettersis 39 lines but takes 72 s. Estimate: 2-3 min off.--e2emode the app logs when it is idle;e2e_tapande2e_settlewait for that line. Estimate: 30-50% off, and it removes a source of flakes (#155, #157), but it touches many cases.run.sh. Each case already has its own Xvfb and log; shared resources such as therepo-server.pyport still need checking.ci.ymlkeepse2eandclickapart because these cases get flaky under load, so timing-sensitive cases likescroll-chapterswould run alone at the end.Target:
e2eat about 6-8 min (an estimate) without sharing the CPU between cases.Kept for later, or not doing
main: a big cut for small PRs, to add if PRs still feel slow. The path-to-case mapping goes stale, and a miss only shows up after merging.🤖 Generated with Claude Code