Skip to content

ci: the BrowserAdapter integration suite is skipped on every CI run, so its regressions only surface locally #78

Description

@ivndev001

What is wrong

CI never runs the BrowserAdapter integration suite. .github/workflows/ci.yml's test step sets:

- name: test
  env:
    SKIP_BROWSER_INTEGRATION: "1"

with the stated reason:

bun test runs test files in parallel by default. The low-level BrowserAdapter integration suite
flakes under the runner's parallel 2-vCPU load (its own Bun.serve fixture refuses connections) —
skip it here; the e2e suite covers the real browser→findings path in CI. It runs in full locally.

The diagnosis is right: the flake is parallel load, not the suite. But the remedy throws the suite
away on every CI run rather than removing the contention, so a regression in the adapter's own
seam only ever surfaces on someone's laptop.

Why now, specifically

The reason to skip it was partly budget: the job could not afford a slow serial suite. That
constraint is gone. As of #77 the job runs in roughly 35 seconds end to end (it previously
timed out at 20 minutes on the Chromium dependency install), against a timeout-minutes: 20
ceiling. There is now ample room to run this suite properly.

What to do

Run the browser integration suite in CI without the parallelism that makes it flake, rather
than skipping it — for example by giving that suite its own serial test invocation while the rest
of the suite keeps running in parallel. Do not simply drop SKIP_BROWSER_INTEGRATION and hope: the
contention it works around is real, and re-introducing a flaky required check is worse than the
current honest gap.

Whatever shape you choose, the fixture's port binding should not depend on tests not racing each
other — a fixture that only works when nothing else is running is the underlying fragility.

Acceptance criteria

  • the BrowserAdapter integration suite executes in CI — it is no longer skipped wholesale
  • it passes on three consecutive runs on the 2-vCPU runner, evidenced by run links in the PR.
    One green run does not distinguish a fix from a lucky scheduling order
  • the rest of the test suite still runs in parallel — the fix must not serialise everything
  • the job stays comfortably inside timeout-minutes: 20; state the new wall-clock in the PR
  • no test is weakened, deleted or marked skipped to achieve the above

Notes

Related but distinct: #58 is about a unit test launching a real browser to assert on file
contents. This issue is about the integration suite being excluded from CI entirely.

Found while repairing this repo's CI in #77 (developerz.ai#3400).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions