Skip to content

test(e2e): give each checkout its own ports and scratch directory - #922

Merged
PaulHax merged 1 commit into
Kitware:mainfrom
PaulHax:e2e-parallel-runs
Aug 16, 2026
Merged

test(e2e): give each checkout its own ports and scratch directory#922
PaulHax merged 1 commit into
Kitware:mainfrom
PaulHax:e2e-parallel-runs

Conversation

@PaulHax

@PaulHax PaulHax commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Lets two checkouts run the e2e suite at the same time. Ports are derived from the checkout path instead of hardcoded to 4567/4568, and each run gets its own scratch directory under .tmp/runs/<port>; fixtures stay in a shared .tmp/datasets cache and are hard-linked in.

CI artifacts now upload .tmp/runs rather than all of .tmp, so fixtures no longer ship twice.

@netlify

netlify Bot commented Aug 15, 2026

Copy link
Copy Markdown

Deploy Preview for volview-dev ready!

Name Link
🔨 Latest commit e4de902
🔍 Latest deploy log https://app.netlify.com/projects/volview-dev/deploys/6a81e0535bde7a0008ae7b6a
😎 Deploy Preview https://deploy-preview-922--volview-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Two suites could not run at the same time on one machine: both bound the
static server to 4567 and the content-disposition server to 4568, and both
wrote generated manifests, session downloads and screenshots into the same
.tmp directory, where the cleanup service deleted the other run's files.

Ports are now derived from a hash of the checkout path, so the wdio launcher,
its workers and the separate vite dev server agree on them without
coordinating, and two worktrees never pick the same pair. VOLVIEW_E2E_PORT and
VOLVIEW_E2E_AUX_PORT override them, and onPrepare names the port anything else
is already holding rather than leaving the static server to fail to bind.

Downloaded fixtures stay in a shared .tmp/datasets cache and are hard-linked
into a run directory keyed by port, so runs share the expensive downloads but
not the files they write. A passing run removes its directory. A failure keeps
it for the screenshots inside, as does a watch session, and so does CI, where
a new baseline image gets picked up from the uploaded artifact. That artifact
now covers .tmp/runs rather than all of .tmp, so the fixtures no longer ship a
second time through their hard links.
@PaulHax
PaulHax force-pushed the e2e-parallel-runs branch from 2e2642d to e4de902 Compare August 16, 2026 16:07
@PaulHax
PaulHax added this pull request to the merge queue Aug 16, 2026
Merged via the queue into Kitware:main with commit 38d39f9 Aug 16, 2026
8 checks passed
@PaulHax
PaulHax deleted the e2e-parallel-runs branch August 16, 2026 17:23
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.

1 participant