Skip to content

ci: run integration tests against local selenium/standalone-chrome [9.6] - #2313

Merged
ZheSun88 merged 1 commit into
9.6from
ci/local-selenium-grid-9.6
Sep 10, 2026
Merged

ci: run integration tests against local selenium/standalone-chrome [9.6]#2313
ZheSun88 merged 1 commit into
9.6from
ci/local-selenium-grid-9.6

Conversation

@vaadin-bot

Copy link
Copy Markdown
Collaborator

Backport of #2232 from main to 9.6.

Problem

The daily dependency-bump workflow opens PRs on all maintained branches at once. The SauceLabs-based branches (8.3, 9.5, 9.6) then compete for the same org-wide session pool, each requesting up to 25 sessions (failsafe.forkCount=5 × testsInParallel=5).

Today that exhausted the pool and run 34433760024 (PR #2307, a Selenium bump) failed in ElementQueryIT with 9 errors:

ElementQueryIT>ParallelTest.setup:141 » SessionNotCreated Could not start a new session.
Response code 400. Message: Job not started.
Your organization has reached its concurrent session limit.

The remaining errors were 900s timeouts from tests queued behind the exhausted pool. Nothing to do with the Selenium bump itself.

Change

Replace the SauceLabs cloud grid + Sauce Connect tunnel with a selenium/standalone-chrome service container on the GitHub Actions runner, as main already does. Tests reuse the existing remote-driver code path, just pointed at localhost:4444 instead of the Sauce hub.

This removes the shared org-wide limit entirely, so branches no longer contend and no global CI queue is needed.

Also drops Safari and Windows 10 platform forcing from the integration test browser configurations, so capabilities match what the Linux container can serve.

The SauceLabsIntegration public API and the routing in BrowserExtension / ParallelTest are unchanged — users who set SAUCE_USERNAME / SAUCE_ACCESS_KEY externally still get the Sauce path.

Notes on the backport

  • All 10 Java files cherry-picked cleanly from ci: run integration tests against local selenium/standalone-chrome #2232; 9.6 already has the same test structure and deployment.hostname support.
  • Only .github/workflows/validation.yml needed hand-resolution: main has since split validation into separate matrix jobs (including a JUnit 6 module that does not exist on 9.6). This keeps 9.6's single build-and-test job and changes only the grid wiring.

Verification

  • Both integration-test modules test-compile.
  • formatter:validate passes on both modules.
  • The containerized grid itself could not be exercised locally — the host.docker.internal service-container networking only exists on the runner. That part rests on it being proven on main.

9.5 and 8.3 have the identical SauceLabs setup and the same exposure, if the same backport is wanted there.

🤖 Generated with Claude Code

Backport of #2232 from main.

Replace the SauceLabs cloud grid + Sauce Connect tunnel with a
selenium/standalone-chrome service container on the GitHub Actions
runner. Tests reuse the existing remote-driver code path, just pointed
at localhost:4444 instead of the Sauce hub.

The daily dependency-bump workflow opens PRs on all maintained branches
at once, and the SauceLabs-based branches then compete for the same
org-wide session pool. With forkCount=5 x testsInParallel=5 each, runs
exhaust it and ElementQueryIT fails with

  SessionNotCreated: Your organization has reached its concurrent
  session limit.

Dropping SauceLabs removes the shared limit entirely, so branches no
longer contend and no global CI queue is needed.

Drop Safari and Windows 10 platform forcing from the integration test
browser configurations so capabilities match what the Linux container
can serve.

The SauceLabsIntegration public API and routing in BrowserExtension /
ParallelTest are unchanged - users who set SAUCE_USERNAME /
SAUCE_ACCESS_KEY externally still get the Sauce path.

The workflow keeps 9.6's single build-and-test job rather than main's
split matrix jobs; only the grid wiring changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ZheSun88
ZheSun88 merged commit 615b304 into 9.6 Sep 10, 2026
4 checks passed
@ZheSun88
ZheSun88 deleted the ci/local-selenium-grid-9.6 branch September 10, 2026 07:32
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.

2 participants