Skip to content

test: run full browser suite on Endform with one backend job - #2

Open
ostenbom wants to merge 10 commits into
codex/playwright-baselinefrom
codex/endform-ci
Open

ostenbom wants to merge 10 commits into
codex/playwright-baselinefrom
codex/endform-ci

Conversation

@ostenbom

@ostenbom ostenbom commented Oct 1, 2026 •

Copy link
Copy Markdown

Run the selected product browser suite in one Endform test job against one CI-local OpenObserve process. The existing manifest still selects all 2,062 Chromium tests in 231 files; the old 29-job test matrix is removed. Build artifacts and existing changed-path selection remain in use.

The main invocation distributes 2,057 tests using Endform's native concurrentTestLimits: forty total remote executions; one RUM file at a time (including the token-reset file); one SLO file at a time (protecting the backfill scheduler); one preferences file; two Reports files; three Alerts files; and at most three tests carrying the existing @pipelines tag. These constraints overlap within the same distributed run, so independent domains can continue while a constrained resource is busy. Actual serial describe groups stay on one worker; independent cases in those files remain distributed. Reports/RUM/Alerts files requiring shared module state stay together. Chromium browser options and test assertions are unchanged; project names identify resource pools.

The same backend uses a 240-hour ingestion window and a seven-day SLO backfill chunk. The final five tests require a process-start quick-mode flag, so the job restarts the backend once with fresh data and the original quick-mode profile, then runs those five. Both invocations execute even if earlier tests fail, and both reports merge into one artifact. Backend CPU/RSS samples are attached. There is no test matrix or broadly sequential second batch.

This PR is stacked on the native baseline PR, branch codex/playwright-baseline, commit 6a7114856cb7de1cb532602a56b4ceba062de2cb. Keep both PRs unmerged for the comparison; retarget this PR after the baseline is eventually merged.

Endform uses GitHub OIDC without an API-key secret. Its port proxy reaches the backend, mail sink, and CI-hosted callback receiver, while worker-hosted RUM fixture servers retain their own ports. Runtime assets are explicitly transferred; the locked RUM npm fixture builds locally before upload. Authentication and ingestion reuse the existing application endpoints and seed helpers without installing browsers. Named helper exports work in Endform's module loader. Test bodies and assertions are unchanged.

Validation: native and consolidated test listings match exactly, with zero missing or additional cases; 22 existing selection contract tests pass; JavaScript syntax checks, workflow YAML parsing, and cargo fmt --all pass. The required workspace clippy command passed earlier on the unchanged Rust source. Targeted local runs verified serial Reports state, named helper exports, the npm RUM fixture, and real alert webhook delivery. A local five-test quick-mode run passed after validating remote packaging of the serial-file metadata. Local resource-limit checks passed: CDN dataflow plus token reset (6 passes, 1 existing skip), and both SLO measurement files (25 passes). The consolidated CI attempt completed with a failed test job; exact main-phase completeness is being checked. Its final quick-mode invocation passed all five tests. The next full CI run targets commit 0361fc5d98f5c9c9818f46fe8ecfe92eb1861e23, including the narrower serial grouping and stable pipeline header target.

The native first full attempt completed in 57m44s, including a 35m43s test-stage critical path: 1,906 passed, 14 flaky passes, 139 skipped, and three Streams failures. Its existing automatic rerun recovered those failures. Baseline first attempt.

An earlier Endform matrix attempt completed with 1,857 passed, 12 flaky passes, 142 skipped, and 51 failures, in 63m00s. That exposed integration problems and is not evidence of successful acceleration. The consolidated architecture and its timing comparison require the pending full run. Both use the same application/test revision; the backend consolidation, concurrency, serial execution granularity, and SLO server settings are explicit resource/scheduling differences.

The first consolidated attempt at ten concurrent executions hit its two-hour job limit with 785 cases unfinished and produced no complete report. It is excluded from the timing comparison. Backend samples peaked at 3,341 MiB RSS and 241% process-average CPU (four available cores). The next full run uses forty total remote executions, retains every resource-specific limit, and allows three hours for completion. The job timeout is a guard, not a measured suite runtime.

Interactive pipeline investigation identified a Playwright runtime difference: Endform runs Playwright 1.60.0 / Chromium 148, whereas the baseline used Playwright 1.55.1 / Chromium 140. An unscoped Name table header is exposed as a columnheader in the newer runtime and as a cell in 1.55.1. The integration now selects its existing data-test="o2-table-th-name" target in the pipeline page helper. A native probe against the real application confirmed that the original role selector and this stable selector resolve to exactly the same element. Test bodies and assertions remain unchanged. The unchanged pipeline core case passed on Endform, one attempt. The runtime/browser difference will remain explicit in the timing comparison.

Run 36886959428 was cancelled before completion after finding and fixing a quick-mode restart readiness bug (native Fetch uses the ok property). A native Fetch Response probe now verifies restart readiness. That incomplete run is excluded from the comparison. The corrected full run still covers main + quick mode and retains forty total executions plus all resource-specific limits. No active Endform quarantine rules apply to this suite.

A committed local refinement is ready for the next CI run: only actual serial describe groups are co-located, while independent tests in the same file remain distributed. dashboard-multi-sql.spec.js has six serial cases and forty independent cases; placing all forty-six on one worker was too coarse (native summed case time is about 24 minutes, beyond Endform’s 15-minute file limit). The partition selects exactly the same 2,062 cases with no additions, omissions, or duplicates. The full mixed multi-SQL file passed locally: 46 passes, one attempt each, 4.9 minutes. This verifies the serial grouping refinement and is not a comparable CI timing sample. The prior full CI attempt used the earlier whole-file grouping. The refinement is now pushed and its full CI run is pending.

@ostenbom ostenbom added ready-for-ci Run CI for this PR e2e-full Run the full existing UI matrix labels Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@ostenbom ostenbom changed the title test: run the existing browser CI groups on Endform test: run full browser suite on Endform with one backend job Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🔎 OpenObserve Code Review

Caution

⛔ Not reviewed

The review API key is not set. OpenObserve Code Review did not run for this PR — this is a CI misconfiguration, not a skip. Please confirm the review secrets are provisioned.

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

Labels

e2e-full Run the full existing UI matrix ready-for-ci Run CI for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant