You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@CharlieHelps In this comment microsoft/playwright#23388 (comment) the user describes using a docker container for playwright which takes care of the slow manual install speed of playwright. Playwright it taking upwards of 25 minutes to install today, which is not tenable.
Using that information, propose a plan - but do not execute it - for using the docker approach in CI while still allowing installation when running tests locally. Do not suggest making a slopfest of changes to the moon file or making moon task execution complicated. We want the minimum number of changes.
I dug through the current smoke-v2 setup and put together a minimum-change plan (no execution yet) that keeps local behavior intact.
Current bottleneck
CI runs moon smoke-v2:run in .github/workflows/test-smoke-v2.yml.
smoke-v2:run depends on smoke-v2:install, which runs playwright install --with-deps (the slow step).
Proposed plan
Run the smoke-v2 job in the official Playwright container
In .github/workflows/test-smoke-v2.yml, set the validate job to use a pinned Playwright image that matches the Playwright package version in test/smoke-v2/package.json.
Example: mcr.microsoft.com/playwright:v1.57.0-noble with container options --ipc=host --init.
Add one CI-specific Moon task (small change, no root Moon churn)
In test/smoke-v2/moon.yml, add run-ci with:
command: playwright test -x
deps: setup only
Keep existing run task unchanged (setup + install) for local dev.
Use that CI task in workflow
In .github/workflows/test-smoke-v2.yml, switch from moon smoke-v2:run to moon smoke-v2:run-ci.
Keep local behavior exactly as-is
Local moon smoke-v2:run still performs playwright install --with-deps, so local browser installation remains available.
Why this is the minimum viable change
Only 2 files should need changes:
.github/workflows/test-smoke-v2.yml
test/smoke-v2/moon.yml
No root .moon slopfest.
No complicated Moon execution logic.
CI avoids the costly Playwright install path by design.
If you want, I can implement this as a focused PR next.
Activity
charliecreates commentedon May 13, 2026
I dug through the current smoke-v2 setup and put together a minimum-change plan (no execution yet) that keeps local behavior intact.
Current bottleneck
moon smoke-v2:runin.github/workflows/test-smoke-v2.yml.smoke-v2:rundepends onsmoke-v2:install, which runsplaywright install --with-deps(the slow step).Proposed plan
Run the smoke-v2 job in the official Playwright container
.github/workflows/test-smoke-v2.yml, set thevalidatejob to use a pinned Playwright image that matches the Playwright package version intest/smoke-v2/package.json.mcr.microsoft.com/playwright:v1.57.0-noblewith container options--ipc=host --init.Add one CI-specific Moon task (small change, no root Moon churn)
test/smoke-v2/moon.yml, addrun-ciwith:playwright test -xsetuponlyruntask unchanged (setup+install) for local dev.Use that CI task in workflow
.github/workflows/test-smoke-v2.yml, switch frommoon smoke-v2:runtomoon smoke-v2:run-ci.Keep local behavior exactly as-is
moon smoke-v2:runstill performsplaywright install --with-deps, so local browser installation remains available.Why this is the minimum viable change
.github/workflows/test-smoke-v2.ymltest/smoke-v2/moon.yml.moonslopfest.If you want, I can implement this as a focused PR next.
shellscape commentedon May 15, 2026
@CharlieHelps open a new PR which follows the plan in #445 (comment)
charliecreates commentedon May 15, 2026
Opened PR #448 implementing the plan from #445 (comment).
Changes in this PR:
validatejob now runs inmcr.microsoft.com/playwright:v1.57.0-noblewith--ipc=host --initmoon smoke-v2:run-cismoke-v2:run-ciintest/smoke-v2/moon.yml(playwright test -x, deps:setuponly)smoke-v2:runremains unchanged (still includes Playwright install)