GitHub Actions
June 5, 2026 · View on GitHub
See below for a summary of this repo's Actions
- Actions marked with "⚠️" are expected to sometimes fail.
Security auditing
We use zizmor to audit GitHub Actions workflow definitions and keep CI workflows as safe as possible. When changing files in this directory, run:
zizmor .github/workflows/*.yml
Workflow changes should avoid unsuppressed zizmor findings. In particular:
- Pin external actions to immutable commit SHAs, not tags.
- Use
actions/checkoutv6 or newer so persisted credentials are stored under$RUNNER_TEMP; setpersist-credentials: falsewhen a job does not need follow-up authenticated Git operations. - Pass GitHub expression values into shell steps through
envinstead of expanding${{ ... }}directly insiderunblocks. - Treat privileged triggers such as
pull_request_targetandworkflow_runas security-sensitive. If a privileged trigger is required, document the safety model and add a targetedzizmorignore with a reason.
PR related actions
Tests + Checks (test-and-check.yml)
- Triggers
- Updates to PRs.
- PRs in the merge queue.
- Actions
- Builds all the packages.
- Runs formatting, linting and type checks.
- Runs fixture tests, Wrangler unit tests, C3 unit tests, Miniflare unit tests, and ESLint + Prettier checks.
- Adds the PR to a GitHub project
- Makes sure that Wrangler's warning for old Node.js versions works.
Wrangler E2E tests (e2e-wrangler.yml)
- Triggers
- Updates to PRs on the Cloudflare fork.
- PRs in the merge queue.
- Actions
- Runs the E2E tests for Wrangler.
- Cloudflare API credentials are only passed on Version Packages PRs (
changeset-release/main), in the merge queue, or when theci:run-remote-testslabel is applied. Other PRs run the E2E suite without remote tests.
Vite Plugin E2E tests (e2e-vite.yml)
- Triggers
- Updates to PRs on the Cloudflare fork.
- PRs in the merge queue.
- Actions
- Runs the E2E tests for the Vite plugin.
- Cloudflare API credentials are only passed on Version Packages PRs (
changeset-release/main), in the merge queue, or when theci:run-remote-testslabel is applied. Other PRs run the E2E suite without remote tests.
Deploy Pages Previews (deploy-pages-preview.yml)
- Triggers
- Updates to PRs that have one of the
preview:...labels.
- Updates to PRs that have one of the
- Actions
- Deploy a preview of the matching Pages project to Cloudflare.
Deploy (to testing) and Test Playground Preview Worker (worker-playground-preview-testing-env-deploy-and-test.yml)
- Triggers
- Commits merged to the
mainbranch, on the Cloudflare fork, which touch files in thepackages/playground-preview-workerdirectory. - Updates to PRs, on the Cloudflare fork, with the
playground-workerlabel applied.
- Commits merged to the
- Actions
- Runs integrations tests to ensure the behaviour of the Worker powering the Workers Playground.
Create Pull Request Prerelease (prerelease.yml)
- Triggers
- Updates to PRs.
- Actions
- Creates an installable pre-release of any package containing
{ "workers-sdk": { "prerelease": true } }in itspackage.json(e.g. Wrangler, C3, and Miniflare) on every PR. - Adds a comment to the PR with links to the pre-releases.
- Creates an installable pre-release of any package containing
Housekeeping actions
Add issues to DevProd project (issues.yml)
- Triggers
- Updates to issues.
- Actions
- Add the issue to a GitHub project.
Generate changesets for dependabot PRs (c3-dependabot-versioning-prs.yml and miniflare-dependabot-versioning-prs.yml)
- Triggers
- Updates to PRs, by the dependabot user, which update one of:
- frameworks dependencies in C3,
- miniflare.
- Updates to PRs, by the dependabot user, which update one of:
- Actions
- Generates changesets for the affected package.
E2E Project Cleanup (e2e-project-cleanup.yml)
- Triggers
- Scheduled to run at 3am each day.
- Actions
- Deletes any Workers and Pages projects that were not properly cleaned up by the E2E tests.
Main branch actions
Handle Changesets (changesets.yml)
- Triggers
- Commits merged to the
mainbranch, on the Cloudflare fork.
- Commits merged to the
- Actions
- If there are changeset in the working directory, create or update a "Version Packages" PR to prep for a release.
- If there are no changesets, release any packages that have a bump to their version in this change.
- Public packages are deployed to npm
- Private packages will run their
deployscript, if they have one.
C3 related actions
C3 E2E Tests (c3-e2e.yml)
- Triggers
- Updates to PRs.
- Actions
- Runs the E2E tests for C3.
- Cloudflare API credentials are only passed on Version Packages PRs (
changeset-release/main), in the merge queue, or when theci:run-remote-testslabel is applied. Other PRs run the E2E suite without remote tests.
Rerun Code Owners (rerun-codeowners.yml + rerun-codeowners-privileged.yml)
- Triggers
- A review is submitted or dismissed on a PR.
- Actions
- Re-runs the "Run Codeowners Plus" check so it re-evaluates approval status after the review change.
- Uses the
workflow_runpattern: the trigger workflow exists solely to fire aworkflow_runevent; the privileged companion workflow (which has full permissions) reads the PR head SHA fromgithub.event.workflow_run.head_shaand performs the re-run. This is necessary becausepull_request_reviewgives a read-only token for fork PRs and has no_targetvariant.
Rerun Remote Tests (rerun-remote-tests.yml)
- Triggers
- The
ci:run-remote-testsorrun-c3-frameworks-testslabel is added to or removed from a PR.
- The
- Actions
- Re-runs the E2E workflows for the PR so they pick up the label change and pass (or withhold) API credentials to the test steps.
ci:run-remote-testsre-runs Wrangler, Vite, and C3 E2E workflows;run-c3-frameworks-testsre-runs only C3 E2E.- Uses
pull_request_targetto get a privileged token even for fork PRs (safe because no untrusted code is checked out).