- Link to the repository: https://github.com/currents-dev/currents-playwright-orchestration-example :contentReference[oaicite:0]{index=0}
- Latest automated changes are Dependabot bumps in Jul–Sep 2025 (excluded). :contentReference[oaicite:1]{index=1}
- Latest non-bot change is May 14, 2025 (multiple commits by
agoldis, including a benchmark + README updates +@currents/playwright@1.13.0). :contentReference[oaicite:2]{index=2}
An example repo that demonstrates how Currents Orchestration (batched orchestration) can reduce Playwright CI time versus native Playwright sharding, using a synthetic suite with mixed test durations and reporting the benchmark numbers in the README. :contentReference[oaicite:3]{index=3}
- Configure Currents with environment variables:
CURRENTS_RECORD_KEYCURRENTS_PROJECT_ID- Optional orchestration batch size via
CURRENTS_BATCH_SIZE(or CLI--pwc-batch-size, or config file). :contentReference[oaicite:4]{index=4}
- Run Playwright with native sharding (baseline) using the Playwright config (
workers: 2, tests under./tests). :contentReference[oaicite:5]{index=5} - Run using Currents Orchestration with a chosen batch size (README recommends
batchSize = workers; config defaults tobatchSize: 2). :contentReference[oaicite:6]{index=6}
(Orchestration conceptually pulls/dispatches tests dynamically; Currents docs recommend using blob reporter + merging when runs are fragmented.) :contentReference[oaicite:7]{index=7}
- Benchmark comparison (documented in README):
- Native sharding: workers=2, machines=5, duration 15m 38s
- Batched orchestration: batch size=2, workers=2, machines=5, duration 9m 17s (~41% faster) :contentReference[oaicite:8]{index=8}
- Currents config example with orchestration settings:
currents.config.tsshowsorchestration.batchSize: 2and reads keys from env. :contentReference[oaicite:9]{index=9}
- Playwright config example:
playwright.config.tssetstimeout,workers: 2,testDir: ./tests, outputDirtest-results/. :contentReference[oaicite:10]{index=10}
- Synthetic suite generator scripts:
generate-tests.mjsgenerates 100 specs with randomized durations (20 long, 30 mid, 50 short) into./tests. :contentReference[oaicite:11]{index=11}generate-tests-edge-case.mjsgenerates an “edge case” suite into./edge-case-tests(40 long + 40 short). :contentReference[oaicite:12]{index=12}
- Dependencies pinned to demonstrate the setup:
@currents/playwrightand@playwright/testare included. :contentReference[oaicite:13]{index=13}
- Add a real Quickstart section
- Right now README is only benchmarks + batch size notes; add exact commands for:
- generating tests
- native sharding run
- orchestration run (include
pwc-pcommand,CURRENTS_CI_BUILD_ID, etc.). :contentReference[oaicite:14]{index=14}
- Right now README is only benchmarks + batch size notes; add exact commands for:
- Add
npmscriptspackage.jsonhas only the placeholdertestscript; addgen,run:shard,run:or8nscripts so users can copy/paste. :contentReference[oaicite:15]{index=15}
- Fix small correctness issues
- README references
currents.confg.ts(typo) and Playwright project name is"chromim"(typo). :contentReference[oaicite:16]{index=16}
- README references
- Show the CI workflow(s) explicitly
- There’s a
.github/workflowsfolder, but README doesn’t list files or explain how “machines=5” is achieved; include a minimal GitHub Actions matrix example in README. :contentReference[oaicite:17]{index=17}
- There’s a
- Reformat files
- README/configs/scripts are committed as single-line files, which makes learning/copying harder—format them normally. :contentReference[oaicite:18]{index=18}
- Explain orchestration reporting implications
- Add a short note: orchestration may run multiple Playwright processes per machine, so recommend blob + merge (with links) and show the exact config snippet. :contentReference[oaicite:19]{index=19}