Skip to content

chore(e2e): run e2e:docker on Windows without Docker Desktop - #1886

Merged
lskramarov merged 3 commits into
mainfrom
chore/e2e-docker-wsl
Aug 12, 2026
Merged

chore(e2e): run e2e:docker on Windows without Docker Desktop#1886
lskramarov merged 3 commits into
mainfrom
chore/e2e-docker-wsl

Conversation

@lskramarov

Copy link
Copy Markdown
Contributor

No description provided.

tools/e2e/run.js died with "Could not find `docker` on PATH" on Windows carrying
Docker Engine inside WSL rather than Docker Desktop: /usr/bin/docker is a Linux
ELF binary, and while WSL projects Windows executables into the distribution,
nothing does the reverse. Probe through `wsl.exe -e docker` when the direct spawn
returns ENOENT, translate the compose file paths with wslpath, and carry
PLAYWRIGHT_VERSION, E2E_PLATFORM and PLAYWRIGHT_WORKERS across the boundary with
WSLENV — without the last of those the image tag silently degrades to `v-noble`
and nothing checks the browsers against the lockfile any more.

A docker.cmd shim on PATH is not an alternative: Node does not resolve .bat/.cmd
from a non-shell spawn, so spawnSync reports the same ENOENT. Neither is a native
Windows CLI over TCP, which resolves the compose file's relative volumes into
Windows paths that a Linux daemon cannot bind-mount.
playwright-report and test-results are mounted out of the container by
tools/e2e/docker-compose.yml, so they appear as soon as anyone runs the suite
locally. The HTML report embeds the trace viewer, which is minified vendor code:
`eslint .` failed with 92 errors and 707 warnings, every one of them from that
bundle rather than from the repository.

Same reasoning as the neighbouring `**/dist` entry, and like dist it never shows
up on the fresh checkout CI lints.
@lskramarov lskramarov self-assigned this Aug 12, 2026
Copilot AI lite review requested due to automatic review settings August 12, 2026 14:03
@lskramarov lskramarov added the bug Something isn't working label Aug 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the local E2E Docker runner so Windows users can run yarn run e2e:docker from PowerShell even when Docker Engine is only available inside WSL (and there is no working docker.exe on the Windows PATH). It also updates the docs and ESLint ignores to reflect the workflow and avoid linting Playwright-generated output.

Changes:

  • Enhance tools/e2e/run.js to probe docker compose and, on Windows, transparently fall back to running Docker via wsl.exe, including translating compose file paths and forwarding required env vars.
  • Update E2E docs to point to the detailed Windows/WSL behavior documentation.
  • Ignore Playwright report/output directories in eslint.config.js to prevent linting generated vendor/minified output.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
tools/e2e/run.js Adds WSL fallback for Docker Compose on Windows, path translation via wslpath, and env forwarding for WSL execution.
packages/e2e/README.md Links to the central testing guide section describing the Windows/WSL wrapper behavior.
eslint.config.js Ignores Playwright report/output directories to avoid linting generated HTML/trace viewer bundles.
docs/guides/06-testing.md Documents the Windows behavior: WSL fallback, distro selection via WSL_DISTRIBUTION, and limitations (daemon reachability still fails at runtime).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit de00f6e):

https://koobiq-next--prs-1886-po67rayu.web.app

(expires Sat, 15 Aug 2026 14:07:54 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c

@lskramarov
lskramarov merged commit 1f30777 into main Aug 12, 2026
15 checks passed
@lskramarov
lskramarov deleted the chore/e2e-docker-wsl branch August 12, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants