Skip to content

test(cache): run the remote cache e2e tests against the Cloudflare Worker - #811

Draft
wan9chi wants to merge 1 commit into
remote-cache-e2e-rejected-uploadsfrom
remote-cache-e2e-worker
Draft

wan9chi wants to merge 1 commit into
remote-cache-e2e-rejected-uploadsfrom
remote-cache-e2e-worker

Conversation

@wan9chi

@wan9chi wan9chi commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Motivation

The remote cache e2e cases ran against a Node file backend that imitated a remote cache server's protocol and write policy. #807 → #810 put the test infrastructure in place against that backend: one backend per case, a tap for the request log, blob numbering, corrupt-blob, and a GitHub Actions stand-in. Vite+'s Cloudflare implementation now lives in voidzero-dev/vite-plus-remote-cache-cloudflare, moved there from #718, and the cases can run against it: a real, independently written server for the protocol.

Changes

  • Backend. Behind the same remote-cache-server commands, the backend is that Worker at a pinned commit, a git dependency of vite-task-tools, running in workerd through Miniflare:
    • The Worker runs with the compatibility settings, bindings, and limits that wrangler reads from its wrangler.jsonc. Its namespaces are limited to the endpoint's.
    • As in a deployment, every migration is applied with wrangler's SQL splitter, and the namespace is registered for the endpoint and the test repository.
    • The Worker fetches GitHub's key set to verify upload tokens and gets the stand-in's key instead. Any other outbound request fails.
    • corrupt-blob replaces the blob's object in R2 and its recorded size.
  • Workspace. The workspace allows esbuild's and workerd's build scripts, which a root pnpm install otherwise rejects. @cloudflare/workers-types provides Miniflare's binding types.
  • Removed the file backend and its @fastify/busboy dependency.
  • musl. The cases that use the backend are skipped on musl, because workerd's prebuilt binaries require glibc.

None of the snapshots change. The daemon, the tap, the CLI, and the stand-in are untouched. Only the backend behind them is different.

Stacked on #810.

🤖 Generated with Claude Code

@wan9chi
wan9chi added this pull request to stack #812 October 5, 2026 05:59
@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

fspy benchmark

linux

dynamic/launch             change  +0.82%  [ -9.50% ..  +9.32%]  overhead  +272.23%
dynamic/access             change  -0.70%  [-18.53% .. +20.15%]  overhead   +16.21%
dynamic/access-relative    change  +0.32%  [-10.52% .. +16.86%]  overhead   +58.09%
dynamic/access-contended   change  +0.72%  [-10.72% .. +19.22%]  overhead   +32.63%
static/launch              change  +1.12%  [ -5.93% ..  +8.76%]  overhead  +678.31%
static/access              change  +1.30%  [-14.71% .. +17.69%]  overhead  +895.18%
static/access-relative     change  -1.25%  [ -7.53% ..  +6.43%]  overhead +1249.74%
static/access-contended    change  +0.98%  [-11.90% ..  +6.15%]  overhead +2033.83%

macos

dynamic/launch             change  +0.77%  [ -5.66% ..  +6.88%]  overhead  +222.38%
dynamic/access             change  +0.73%  [ -5.00% ..  +8.87%]  overhead    +6.32%
dynamic/access-relative    change  -0.62%  [ -6.33% ..  +5.69%]  overhead  +260.14%
dynamic/access-contended   change  -0.47%  [-89.33% .. +13.44%]  overhead    -1.05%

windows

dynamic/launch             change  -0.18%  [ -4.16% ..  +3.34%]  overhead   +26.95%
dynamic/access             change  -0.55%  [ -2.57% ..  +1.50%]  overhead    +1.13%
dynamic/access-relative    change  -0.18%  [ -2.01% ..  +1.99%]  overhead    +1.07%
dynamic/access-contended   change  +0.71%  [ -4.07% ..  +4.24%]  overhead    +2.53%

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

Remote cache staging

Commit: 3454480b913ce6226c6d611040d328e77946cd2a

Cloudflare staging deployment and smoke tests passed. You can now perform manual verification.

Endpoint: https://vp-cache-ci-staging.voidzero-docs.workers.dev/projects/manual

Download the remote-cache-e2e-37270185172-1 artifact from the workflow run. It contains manual-fetch.cbor, manual-manifest.json, and report.json.

PR checks cover public reads and rejected writes. Main-branch push checks also cover authorized HTTP stores. This staging endpoint is shared by all PRs and main. A later deployment replaces its code and manual fixture. Compare the deployment ID in the response with the artifact before manual verification. Closing this PR does not remove staging.

Manual checks and complete e2e plan.

@wan9chi
wan9chi removed this pull request from stack #812 October 6, 2026 02:42
@wan9chi wan9chi changed the title test(cache): run the remote cache e2e tests against the public cache Worker test(cache): run the remote cache e2e tests against the Cloudflare Worker Oct 6, 2026
@wan9chi
wan9chi changed the base branch from feat/public-remote-cache to remote-cache-e2e-rejected-uploads October 6, 2026 02:42
@wan9chi
wan9chi force-pushed the remote-cache-e2e-worker branch from 3454480 to 845fb3c Compare October 6, 2026 02:42
@wan9chi
wan9chi added this pull request to stack #813 October 6, 2026 02:42
@socket-security

socket-security Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​esbuild@​0.28.1911007387100
Addednpm/​wrangler@​4.131.1981009296100
Addednpm/​@​cloudflare/​workers-types@​5.20260911.11001009699100
Addednpm/​miniflare@​5.20260911.0-alpha9910010096100

View full report

…rker

The e2e backend was a Node file backend that imitated a remote cache
server's protocol and write policy. Behind the same `remote-cache-server`
commands, it's now Vite+'s Cloudflare implementation, from
voidzero-dev/vite-plus-remote-cache-cloudflare at a pinned commit, in
workerd through Miniflare:

- The Worker runs with the compatibility settings, bindings, and limits
  that wrangler reads from its `wrangler.jsonc`, with its namespaces
  limited to the endpoint's.
- As in a deployment, every migration is applied with wrangler's SQL
  splitter, and the namespace is registered for the endpoint and the
  test repository.
- The Worker fetches GitHub's key set to verify upload tokens, and gets
  the GitHub Actions stand-in's key instead. Any other outbound request
  fails.
- `corrupt-blob` replaces the blob's object in R2.

The workspace now allows the build scripts of esbuild and workerd, which
a root `pnpm install` otherwise rejects.

None of the snapshots change. The cases that use the backend are now
skipped on musl, because workerd's prebuilt binaries require glibc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wan9chi
wan9chi force-pushed the remote-cache-e2e-worker branch from 845fb3c to f097c29 Compare October 6, 2026 02:48

This branch has not been deployed

No deployments
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