Skip to content

fix(ci): stop loading external help URL + bump Chrome to 124#6821

Open
dmetzner wants to merge 2 commits intomainfrom
fix/help-feature-redirect-and-chrome-bump
Open

fix(ci): stop loading external help URL + bump Chrome to 124#6821
dmetzner wants to merge 2 commits intomainfrom
fix/help-feature-redirect-and-chrome-bump

Conversation

@dmetzner
Copy link
Copy Markdown
Collaborator

@dmetzner dmetzner commented May 6, 2026

Summary

  • Root cause: Both "Development Container" and "Behat (web-general web-notifications)" pipelines have been failing on every PR (e.g. build(deps): bump ip-address from 10.1.0 to 10.2.0 #6819) since 2026-05-05. Same SHA passed 2026-05-04 → not a code regression. The shared scenario help.feature makes the browser navigate to https://catrobat.org/docs/; that page apparently got heavier and Chromium 100 (zenika/alpine-chrome:100, Apr 2022, frozen) OOMs loading it. Symptom: Browser crashed, Couldn't find window, <--- Last few GCs ---> Mark-sweep ... allocation failure.
  • Option A — fix the test: rewrite help.feature to assert the 302 + Location header via KernelBrowser (no real browser, no external page load). We test our own redirect, not catrobat.org's page weight. Adds a reusable the response Location header should be ":url" step in ApiContext.
  • Option B — bump the engine: zenika/alpine-chrome:100:124 in both docker-compose.dev.yaml and docker-compose.test.yaml. Future browser-loaded tests get a current engine instead of one stuck at 2022.

Test plan

  • Behat (web-general web-notifications) passes
  • Development Container passes (runs bin/behat -s web-general as smoke)
  • All other Behat suites still green on bumped Chrome 124
  • PHPUnit + static analysis green

🤖 Generated with Claude Code

dmetzner and others added 2 commits May 6, 2026 14:50
The web-general suite (and the Development Container smoke check that
runs it) crashed Chrome with OOM when help.feature navigated the
browser to https://catrobat.org/docs/. Same SHA passed 2026-05-04 and
failed 2026-05-05+, so the regression was external page bloat, not
code. Chromium 100 in zenika/alpine-chrome:100 (Apr 2022) cannot keep
up.

- Rewrite help.feature to assert the 302 + Location header via the
  KernelBrowser (no browser navigation, no external load). Tests the
  redirect we own, not the third-party page.
- Add `the response Location header should be ":url"` step in
  ApiContext for reuse.
- Bump zenika/alpine-chrome 100 -> 124 in dev/test compose so future
  in-app tests render on a current engine.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous commit returned 404 because ApiContext registers a
@BeforeScenario that calls KernelBrowser::followRedirects() — once a
302 fires, the test client tries to fetch the external Location target
in-app, which is not routable and 404s. Add `I do not follow redirects`
step (calls followRedirects(false)) and use it before the GET so the
302 is asserted directly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant