test(perf): make the performance suite actually runnable#427
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the PHPUnit performance configuration by correcting relative paths to the project root, removing the redundant <groups> section, and removing the runtime setting for opcache.enable_cli. It also updates the perf:export script in composer.json to target the performance test suite. The review feedback suggests simplifying the <source> exclusions in the PHPUnit configuration by removing directories that are already outside the included ../../src directory.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
…431) **Unblocks CI for every open PR.** The legacy ExtJS Encore build (`npm run build` -> `public/build`) fails *only* in the GitHub-Actions buildkit environment — the identical `:e2e` image (node 24) runs `npm ci` + `encore production` to **"Compiled successfully"** locally, but the GHA build produces a broken `@symfony/webpack-encore`. It's not the cli version, node version, lock, or `npm ci` (all ruled out), and it gates the build jobs that every PR depends on. ExtJS is being removed shortly and its built assets won't change, so per maintainer call we **freeze them static** and retire the Encore build: - commit `public/build` (un-ignored in `.gitignore` + `.dockerignore`) - `Dockerfile`: drop `npm run build`, keep the SolidJS `bun run --cwd frontend build` - `ci.yml`: drop the "Build legacy ExtJS assets (Encore)" step The SolidJS UI (`public/build-ui`) is still built by Vite. **This PR's own CI passing is the validation.** Once merged, #427/#429/#430 rebase onto it and go green. Note: +30 MB of committed static assets (the ExtJS SDK) — accepted as a short-term measure since the ExtJS removal will delete them.
config/testing/phpunit-performance.xml used config-dir-relative paths, so PHPUnit
resolved bootstrap + the testsuites under config/testing/ and the perf:* scripts
silently ran nothing ("No tests executed"). Fix:
- prefix every path with ../../ (bootstrap, source include/exclude, testsuites)
so they resolve from the repo root
- drop the global <groups>performance filter — it required @group docblock
metadata that PHPUnit 13 no longer honours, so testsuite runs matched 0 tests
- point perf:export at the `performance` testsuite instead of --group=performance
- drop the opcache.enable_cli ini (PHP_INI_SYSTEM, unsettable at runtime → a
warning that made the scripts exit non-zero)
Now: perf:unit 15 tests, perf:integration 7, perf:export 22 — all green, exit 0.
These benchmark scripts are developer tools (not on the CI hot path).
Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
5f88c3c to
d7cd25a
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #427 +/- ##
=========================================
Coverage 83.92% 83.92%
Complexity 2752 2752
=========================================
Files 187 187
Lines 7534 7534
=========================================
Hits 6323 6323
Misses 1211 1211
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
….xml The <source> block includes only ../../src, so excluding ../../vendor, ../../tests and ../../var (all outside that tree) had no effect. Keep only src/Migrations and src/DataFixtures, which are under the included src dir. Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
|
…e) (#433) The `worklog-crud` "create → edit → delete" test (helpers/worklog.ts:132) asserts the freshly-saved row is visible after waiting for the save 200 + the reconciling `getData/days` refetch. Under CI 2-worker contention the refetch → SolidJS reconcile → render can exceed Playwright's default **5s** expect timeout — the recurring **shard-9** flake that has re-run-gated nearly every PR this round (#427 hit it 3×). Fix: give that one visibility assertion a **15s** window (the same the page's other readiness waits use). No production code changes.



The
config/testing/phpunit-performance.xmlconfig used config-dir-relative paths, so PHPUnit resolvedbootstrap+ the testsuites underconfig/testing/and theperf:*scripts silently ran nothing.Fixes:
../../prefix on every relative path (bootstrap, source include/exclude, testsuites) so they resolve from the repo root<groups>performancefilter — it required@groupdocblock metadata PHPUnit 13 no longer honours, so testsuite runs matched 0 testsperf:exportat theperformancetestsuite instead of--group=performanceopcache.enable_cliini (PHP_INI_SYSTEM, unsettable at runtime → a warning that made the scripts exit non-zero)Result:
perf:unit15 tests,perf:integration7,perf:export22 — all green, exit 0 (verified in the e2e image's PHP 8.5.7). These are developer benchmark tools, not on the CI hot path.