Skip to content

E2E: parallel workers#7309

Open
phyllis-sy-wu wants to merge 1 commit intopsyw-0413-E2E-store-isolationfrom
psyw-0414-E2E-parallel-workers
Open

E2E: parallel workers#7309
phyllis-sy-wu wants to merge 1 commit intopsyw-0413-E2E-store-isolationfrom
psyw-0414-E2E-parallel-workers

Conversation

@phyllis-sy-wu
Copy link
Copy Markdown
Contributor

@phyllis-sy-wu phyllis-sy-wu commented Apr 15, 2026

Addressed #7268

WHY are these changes introduced?

E2E tests currently run sequentially with 1 worker, making the suite slow (~25 min on CI). With per-test store creation (PR #7279), each store-dependent test adds ~30s of overhead, compounding the problem.

WHAT is this pull request doing?

Enables parallel test execution in playwright.config.ts:

  • fullyParallel: true — tests run concurrently across workers
  • workers: 5 — 5 parallel Playwright workers
  • globalTimeout: 20 * 60 * 1000 — reduced from 35 min to 20 min (parallel execution is much faster)
  • GitHub Actions timeout-minutes reverted from 40 back to 20 (no longer needs the temporary bump from E2E: temporary time limit bump #7282)

This is safe because the store isolation PR (#7279) gives each worker its own dev store with unique ports per worker (SHOPIFY_FLAG_GRAPHIQL_PORT, SHOPIFY_FLAG_THEME_APP_EXTENSION_PORT), preventing EADDRINUSE conflicts. Tests use pnpm (not npm) for dependency installation, which is reliable under parallel load on CI runners.

CI result: Current test suite completes in ~10 min with 5 workers, down from ~27 min with 1 worker. The globalTimeout is set to 20 min to leave headroom as more tests will be added — will be re-evaluated once test coverage is finalized.

How to test your changes?

# Run full suite — should complete in ~5-10 min instead of ~25 min
pnpm --filter e2e exec playwright test

# Verify no port conflicts with headed mode
E2E_HEADED=1 DEBUG=1 pnpm --filter e2e exec playwright test

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing, so I've added a changelog entry with pnpm changeset add

Copy link
Copy Markdown
Contributor Author

phyllis-sy-wu commented Apr 15, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0413-E2E-store-isolation branch from dbcae8d to 898e174 Compare April 15, 2026 14:33
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from 6c00722 to 0cf54f5 Compare April 15, 2026 14:33
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0413-E2E-store-isolation branch from 898e174 to fd1b216 Compare April 15, 2026 17:05
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch 3 times, most recently from 3af2880 to 6e9781e Compare April 15, 2026 18:17
@phyllis-sy-wu phyllis-sy-wu changed the base branch from psyw-0413-E2E-store-isolation to graphite-base/7309 April 15, 2026 18:25
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from 6e9781e to 50dc619 Compare April 15, 2026 18:35
@phyllis-sy-wu phyllis-sy-wu changed the base branch from graphite-base/7309 to psyw-0413-E2E-store-isolation April 15, 2026 18:35
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from 50dc619 to aa94ef3 Compare April 15, 2026 18:48
@phyllis-sy-wu phyllis-sy-wu marked this pull request as ready for review April 15, 2026 19:05
@phyllis-sy-wu phyllis-sy-wu requested a review from a team as a code owner April 15, 2026 19:05
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from aa94ef3 to b4e1649 Compare April 16, 2026 21:18
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0413-E2E-store-isolation branch from 5af1692 to 5786612 Compare April 16, 2026 21:18
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from b4e1649 to e654076 Compare April 16, 2026 22:11
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0413-E2E-store-isolation branch from 5786612 to cff5059 Compare April 16, 2026 22:11
Copy link
Copy Markdown
Contributor

@gonzaloriestra gonzaloriestra left a comment

Choose a reason for hiding this comment

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

The improvement is great, but it’s still 2x slower than the others...

Have you tried with more workers? Or maybe with shards as we do for Unit tests on Windows?

@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0413-E2E-store-isolation branch from cff5059 to f48eb8b Compare April 17, 2026 14:10
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from e654076 to c6e821f Compare April 17, 2026 14:10
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0413-E2E-store-isolation branch from f48eb8b to f13e969 Compare April 17, 2026 14:13
@phyllis-sy-wu phyllis-sy-wu force-pushed the psyw-0414-E2E-parallel-workers branch from c6e821f to e3bf24c Compare April 17, 2026 14:13
@github-actions
Copy link
Copy Markdown
Contributor

Differences in type declarations

We detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/node/upgrade.d.ts
@@ -1,5 +1,3 @@
-import { getAutoUpgradeEnabled, setAutoUpgradeEnabled } from '../../private/node/conf-store.js';
-export { getAutoUpgradeEnabled, setAutoUpgradeEnabled };
 /**
  * Utility function for generating an install command for the user to run
  * to install an updated version of Shopify CLI.

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.

E2E: Parallel test execution with multiple workers for faster CI

4 participants