Skip to content

ci: run browser journeys on three shards per engine - #280

Merged
kalvinnchau merged 1 commit into
mainfrom
larry/webkit-three-shards
Sep 25, 2026
Merged

kalvinnchau merged 1 commit into
mainfrom
larry/webkit-three-shards

Conversation

@loganj

@loganj loganj commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

🤖

Summary

  • Browser test jobs often got cancelled at their 15-minute limit while their tests were still passing. When that happens, CI required fails and the PR shows red for no real reason. In recent runs this happened on main, on fix(status): reopen a Today status as Today near 16:00 #275, and on at least one other PR branch.
  • Now each browser engine (Chromium and WebKit) runs its tests on three runners instead of two, so each runner has less work. The 15-minute limit stays the same, so a real hang still fails quickly.

Details

  • With two runners per engine, a WebKit runner spent about 12.5 minutes on tests and runner setup took another 50–140 seconds. Chromium is faster but not safe either: across its last 34 successful jobs, the median was 11.4 minutes and the slowest was 13.45 minutes.

  • Estimated test time per runner uses per-test times from a recent passing run (test: repair three baseline Vitest failures #276). Each runner has two workers, so run time is about half of the total test-minutes:

    Engine 2 runners (before) 3 runners (this PR)
    WebKit 24.2, 24.4 19.4, 12.0, 17.4
    Chromium 20.2, 17.5 16.4, 9.0, 12.3

    Playwright gives each runner whole test files, so the split is uneven. Four runners would save only about 3 more test-minutes on the slowest WebKit runner, so this PR uses three.

  • This adds two runners per CI run. Job names change from (webkit, 1/2) to (webkit, 1/3). The only required check is CI required, which still requires every shard to pass.

  • tests/integration/browser-ci.test.mjs now expects shards [1, 2, 3]. Its coverage test runs each shard's actual command and still checks that every functional test runs exactly once.

  • docs/contributing.md and docs/browser-testing.md now describe three shards per engine.

@loganj
loganj force-pushed the larry/webkit-three-shards branch from c244dd2 to 63a9059 Compare September 25, 2026 18:39
@loganj loganj changed the title ci: run WebKit browser journeys on three shards ci: run browser journeys on three shards per engine Sep 25, 2026
@loganj
loganj force-pushed the larry/webkit-three-shards branch from 63a9059 to 11a903b Compare September 25, 2026 18:57
@loganj
loganj marked this pull request as ready for review September 25, 2026 19:10
@loganj
loganj requested review from a team, comp615 and wesbillman as code owners September 25, 2026 19:10
With two shards per engine, a WebKit shard ran about 12.5 minutes of
tests and a Chromium shard up to about 11. With 1-2.5 minutes of runner
setup, jobs often reached the 15-minute limit and were cancelled while
their tests were still passing. Keep the limit, so a hang still fails
fast, and use three shards per engine.

Signed-off-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
@loganj
loganj force-pushed the larry/webkit-three-shards branch from 11a903b to d1097a5 Compare September 25, 2026 19:11
@kalvinnchau
kalvinnchau merged commit 4012979 into main Sep 25, 2026
14 checks passed
@kalvinnchau
kalvinnchau deleted the larry/webkit-three-shards branch September 25, 2026 19:25
zrmarley added a commit that referenced this pull request Sep 25, 2026
…-image

* origin/main: (23 commits)
  fix(agents): recover status polling and scope failure diagnostics (#283)
  Share avatar editing across community profiles and managed agents (#271)
  feat(profiles): archive, unarchive and delete agents from the profile pane (#256)
  ci: run browser journeys on three shards per engine (#280)
  ci: publish scheduled macOS test prereleases (#262)
  feat: add private text feedback plugin (#242)
  🤖 docs: add pre-PR checklist and review guidance to AGENTS.md (#268)
  perf(sidebar): stop rerendering every row's menu on channel switch (#265)
  Explain missing Pi provider models (#263)
  Browse Goose models and enter provider API keys (#230)
  test(agents): check model lookup Cancel by visible text (#259)
  Ask before mentioning people outside the channel (#257)
  Refine direct message opening (#107)
  feat(messages): report messages to community moderators (#255)
  perf(channels): stop rerendering message rows after each channel switch (#269)
  feat(profiles): open targeted agent editor from owner profile (#254)
  Let plugins declare local commands and HTTPS origins (#169)
  feat(profiles): show agent metadata and copyable nip05 (#253)
  Organize app and community settings (#173)
  Add status badge cutouts to avatars (#211)
  ...
johnmatthewtennant pushed a commit that referenced this pull request Sep 28, 2026
* origin/main:
  feat: attach sanitized image and opt-in diagnostics to feedback (#245)
  test: repair three baseline Vitest failures (#276)
  fix(agents): recover status polling and scope failure diagnostics (#283)
  Share avatar editing across community profiles and managed agents (#271)
  feat(profiles): archive, unarchive and delete agents from the profile pane (#256)
  ci: run browser journeys on three shards per engine (#280)

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>

# Conflicts:
#	src/bundled/agents/AgentEditor.tsx
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.

2 participants