Skip to content

ci: run E2E shards on Depot with live RPC through the Tempo API - #994

Merged
snario merged 2 commits into
mainfrom
claude/e2e-shards-on-depot
Oct 14, 2026
Merged

snario merged 2 commits into
mainfrom
claude/e2e-shards-on-depot

Conversation

@snario

@snario snario commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Summary

Moves the E2E shards to Depot, the last step toward ~3 min E2E checks.

Live tests failed on Depot because Moderato's load balancer (tempoxyz/orchestra) limits concurrent connections per IP for anonymous requests, and Depot shares egress IPs. #984 appended TEMPO_RPC_API_KEY to rpc.moderato.tempo.xyz/<key>, but orchestra doesn't know Tempo API keys. Those requests still counted as anonymous, and the Node proxy's extra connections made them fail even on GitHub runners (#995 turned the key off).

Fix: forward live-test RPC to https://api.tempo.xyz/rpc/42431 with Authorization: Bearer <key>. That route (scope data:read) proxies to orchestra with an orchestra client credential, and orchestra exempts authenticated clients from the per-IP limit.

Probe from one GitHub runner:

Burst API proxy (keyed) Public RPC
60 concurrent 60 × 200 45 × 200, 15 × 429
180 concurrent 180 × 200 56 × 200, 123 × 429

Through the proxy, a faucet receipt appeared in ~1s and balances matched the public RPC.

  • e2e/rpc.ts: forward to the API proxy with a Bearer header. rpc-auth.test.ts follows.
  • verify.yml: pass TEMPO_RPC_API_KEY again; shards run on depot-ubuntu-latest-8 with 6 workers.
  • README: the secret is a Tempo API key with data:read. The existing key (tempoxyz/docs live E2E (Moderato RPC)) was switched to that scope; the token didn't change.

Fork PRs don't get the secret, so their live tests use the public RPC.

Co-Authored-By: Liam Horne [email protected]

🤖 Generated with Claude Code

Prompted by: Liam

@vercel

vercel Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
tempo-docs Ready Ready Preview Oct 14, 2026 6:56pm UTC

Request Review

@snario

snario commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Blocked on the RPC relay, not on Depot. The keyed Moderato relay applies the same per-IP connection limit as the public RPC: a burst of 60 from one runner got ~19 429s on both. So the key doesn't help Depot's shared IPs. With the key, live tests also failed on GitHub runners, because #984's Node proxy opens many connections (#995 stops passing it). Details: #984 (comment). Undraft once the relay limits keyed traffic per key.

snario and others added 2 commits October 14, 2026 11:47
TEMPO_RPC_API_KEY is now configured, so live tests reach Moderato through
an authenticated relay instead of the anonymous per-IP pool that Depot's
shared egress IPs exhausted. The shards move to the same 8-core Depot
runners as the build and run six Playwright workers.

Co-Authored-By: Liam Horne <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
#984 appended TEMPO_RPC_API_KEY to rpc.moderato.tempo.xyz, but that load
balancer does not know Tempo API keys. Requests counted as anonymous and
hit the per-IP connection limit, and from one IP the Node proxy's many
connections broke live tests even on GitHub runners.

api.tempo.xyz/rpc/:chainId takes the key as a Bearer token with the
`data:read` scope and reaches Moderato as an authenticated client, which
the per-IP limit does not apply to. From one runner it served 180
concurrent requests without a 429; the public RPC rejected 123.

The Verify workflow passes the key to Playwright again.

Co-Authored-By: Liam Horne <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@snario
snario force-pushed the claude/e2e-shards-on-depot branch from 321e4d1 to a44c808 Compare October 14, 2026 18:49
@snario snario changed the title ci: run E2E shards on Depot with authenticated Moderato RPC ci: run E2E shards on Depot with live RPC through the Tempo API Oct 14, 2026
@snario
snario marked this pull request as ready for review October 14, 2026 18:49
@snario
snario merged commit 2a70728 into main Oct 14, 2026
14 of 15 checks passed
@snario
snario deleted the claude/e2e-shards-on-depot branch October 14, 2026 18:55

This branch was successfully deployed

1 active deployment
Preview — a44c8085 Deployed Oct 14, 2026 by vercel[bot]
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