Repository navigation
ci(e2e): run the E2E suite in three parts side by side (FRU-268) - #286
Conversation
47dd97f to
0ec0117
Compare
There was a problem hiding this comment.
Score de confiance : 3/5 ·
Niveau lite · anthropic/claude-haiku-5.5 · 0,002 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
|
On the lite review:
|
There was a problem hiding this comment.
Score de confiance : 4/5 · ✅ Rien de bloquant · Peut être fusionné : la répartition de la suite E2E en trois parts conserve le contrôle final e2e qui échoue si une part échoue, est annulée ou ne tourne pas, avec un risque mineur sur le test de liste de notes relancée.
Niveau lite · anthropic/claude-haiku-5.5 · 0,002 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
|
@sakuga-review review balanced |
There was a problem hiding this comment.
Score de confiance : 4/5 ·
Niveau balanced · anthropic/claude-sonnet-5.5 · 0,043 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
|
On the
|
9679586 to
dd05d09
Compare
|
Put back on
|
There was a problem hiding this comment.
Score de confiance : 4/5 · ✅ Rien de bloquant · Mergeable : la matrice de trois parts et le job e2e qui agrège leur résultat sont corrects, et le test contributing suit le renommage des checks. Je n'ai pas pu vérifier la configuration Playwright ni le script pnpm e2e qui reçoivent --shard.
Niveau lite · anthropic/claude-haiku-5.5 · 0,003 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
Each part runs on its own runner, on four Playwright workers. The count of parts comes from the matrix. A last job, still named e2e, fails unless every part passed. The table of the checks in CONTRIBUTING.md lists e2e once. Co-Authored-By: Claude Opus 5.5 <[email protected]>
dd05d09 to
eaafe3a
Compare
|
Rebased on One conflict, in the step that runs the suite: main changed its comment (FRU-223, PGlite in the process); the new step keeps that comment and runs one part. Nothing else moved. zizmor 1.30.1 offline: no finding; |
There was a problem hiding this comment.
Score de confiance : 4/5 · ✅ Rien de bloquant · Mergeable : la suite E2E est découpée en trois parts et le job e2e garde son nom et échoue si une part échoue, est annulée ou ne tourne pas. Je n'ai pas relevé de défaut dans le diff. Le script e2e du package.json et la configuration Playwright ne sont pas visibles, donc le passage de --shard n'est pas vérifiable d'ici.
Niveau lite · anthropic/claude-haiku-5.5 · 0,003 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
For Mathieu: this changes the CI (
.github/workflows/ci.yml), the orchestrator does not merge it. No ruleset change is needed: the rulesetdefaultofmainrequires no status check by name, and the checke2ekeeps its name anyway.#285 and #288 are merged. This branch is now on
main, one commit: the workflow, and the test ofCONTRIBUTING.mdthat reads its jobs.The E2E suite runs in three parts side by side (
playwright test --shard=N/3), each on its own runner with four Playwright workers (#285). A last job, still namede2e, passes only when every part passed. Part of FRU-268.Measures
Wall time of the check: from the start of the first part to the end of
e2e. Runner time: the sum of the e2e jobs.maintoday: one job, one worker290 tests in each run. A fourth run of three parts (1058) failed on
read-failure.spec.ts, a race in the test that #288 fixes; the three runs after it (1064, 1065, 1067) carried the fix.Where the time of one part goes (run 1047, part 1): 24 s to start the Playwright container, 30 s of checkout, Node, pnpm, cache and install, then about 20 s of build and server start, and 2 to 2.6 minutes of tests. The pnpm store is already cached; the rest repeats on each runner, which is the cost of a part: about 75 s of runner each.
Why three parts and not two
Playwright cuts by files and by count of tests, not by time. Two parts gave 161 and 129 tests, 3.7 and 2.5 minutes: the job of the long half took 4 min 58, at the edge of the 5 minutes asked. Three parts give 111, 85 and 94 tests, about 2 minutes each.
What changes
e2e-shard(shown ase2e (1/3),e2e (2/3),e2e (3/3)): the formere2ejob with a matrix andfail-fast: false. The count of parts comes fromstrategy.job-total, so it is written once, in the matrix. The ceiling goes from 20 to 15 minutes. The artefact of a failed part isplaywright-report-N.e2e: needse2e-shard, runsif: always(), and fails unless the result of the matrix issuccess. The result goes throughenv, not into the script.apps/worker/src/contributing.test.ts: the parts are not checks of their own, so the table ofCONTRIBUTING.mdstill listse2eonce.zizmor 1.30.1, offline, as CI runs it: no finding. No
pull_request_target, no new action.Not verified
🤖 Generated with Claude Code
Sakuga Review · Score de confiance : 4/5
Mergeable : la suite E2E est découpée en trois parts et le job
e2egarde son nom et échoue si une part échoue, est annulée ou ne tourne pas. Je n'ai pas relevé de défaut dans le diff. Le scripte2edu package.json et la configuration Playwright ne sont pas visibles, donc le passage de--shardn'est pas vérifiable d'ici.Résumé
Le workflow ci.yml remplace le job
e2epar une matricee2e-shard(trois parts,fail-fast: false) qui lancepnpm e2e --shard=N/3, avec un artefact de rapport par part, puis ajoute un jobe2eagrégateur qui exige queneeds.e2e-shard.resultvaillesuccess. Le testcontributing.test.tsexclut les jobs à matrice du décompte des checks, saufcheck, pour que la liste reste celle des cibles Nx. J'ai contrôlé les expressions${{ }}(elles passent parenv, sans injection), les noms d'artefacts uniques par part, la conditionif: always()et le cas d'une part annulée ou sautée.Diagramme
%%{init: {'theme': 'neutral'}}%% flowchart LR A["ci.yml e2e-shard 1..3"] --> B["pnpm e2e --shard=N/3"] B --> C["playwright-report-N"] A --> D["job e2e agregateur"] D --> E["test RESULT = success"]Non relu
Revues (5) · Dernier commit relu : ci(e2e): run the E2E suite in three parts side ... · Niveau
lite·anthropic/claude-haiku-5.5· 0,003 $