~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

e2e runs its public and private flows side by side

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:ci/e2e-side-by-side

What changes

The e2e check runs its public flows (over the stock PDS) and its private flows (over a world of their own on the spaces alpha) side by side, on ports set apart, instead of one after the other; and builds the binaries and the pages side by side. Each run's log is shown whole once it ends.

Why

The two Playwright runs share nothing but ports, and took ~1.9m and ~1.6m one after the other: the flows step is ~213s of a ~4.5–5m check.

How it was checked

This pull's own e2e run, all 60 flows passing (45 public, 15 private):

flows stepbuild stepcheck in all
one after the other (main's last batches)~213s33–86s~4.5–5m
side by side (this pull)105s48s2m50s

The build's number is one run against a range that host load sets, so it says little; the flows' halving is the two runs overlapping.

Changeset: none

🤖 Generated with Claude Code

Approved

The pull runs the public and private Playwright flows side by side, and the cargo and web builds side by side. I found nothing that must change.

  • Ports: SHOTS_PORT=29100 and 29200 move the world's port and the pages' port (+1). They don't overlap, and the PDS, PLC and TLS proxy already take free ports.
  • Other shared state: The Playwright outputDir already differs between the public and private runs. Each world has its own temp directory, CLI config and cache.
  • Build step: Killing cargo if the web build fails is fine. If cargo fails instead, wait $cargo carries its status out as the step's.
  • Flows step: Each run's exit status is kept, and the failed-page copy loop still covers both output directories.

Two things to know, neither blocking:

  • Timeout: Each log now prints only once its run ends. If the step hits its timeout or the runner dies mid-run, you get no log at all. Streaming each log with tail -f while it runs would avoid that.
  • No timing yet: The body says "numbers to follow", so the speedup and the extra memory and CPU load on the runner (two PDS instances and two Chromium instances) are unmeasured. Check that this pull's own e2e run is stable and not slower before relying on it.
Merged as a244db6