Skip to content

charlie: faster smoke tests on CI #445

Closed

Description

@shellscape

@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.

Activity

  1. charliecreates commented on May 13, 2026

    @charliecreates
    Contributor

    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

    1. 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.
    2. 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.
    3. 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.
    4. 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.

  2. shellscape commented on May 15, 2026

    @shellscape
    OwnerAuthor

    @CharlieHelps open a new PR which follows the plan in #445 (comment)

  3. charliecreates commented on May 15, 2026

    @charliecreates
    Contributor

    Opened PR #448 implementing the plan from #445 (comment).

    Changes in this PR:

    • CI validate job now runs in mcr.microsoft.com/playwright:v1.57.0-noble with --ipc=host --init
    • Workflow now runs moon smoke-v2:run-ci
    • Added smoke-v2:run-ci in test/smoke-v2/moon.yml (playwright test -x, deps: setup only)
    • Existing local smoke-v2:run remains unchanged (still includes Playwright install)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions