Where Is My Build Data Stored?
Build work happens on the runner, on an encrypted volume destroyed with the machine. US and EU are the regions WarpBuild names, and BYOC keeps storage yours.
Build work happens on the runner, on an encrypted volume created for that job and destroyed with the virtual machine when the build ends (runner security documentation). US and EU are the regions WarpBuild names publicly for that infrastructure, and BYOC moves the runner and its storage bucket into your own cloud account.
Answer
The question has one answer for the job itself and a short list of exceptions. Everything a build produces starts on the runner volume; the bytes that outlive the job are the ones a step deliberately sends somewhere else.
| Data class | Where it sits during the job | Where it sits afterward |
|---|---|---|
| Checkout, dependency trees, compiled output | The runner's encrypted volume, inside the per-job virtual machine | Destroyed with the virtual machine after the build (security docs) |
| Cache entries a cache step saved | Written from the runner over HTTPS | WarpBuild cache storage on hosted runners, or the stack object storage bucket in your cloud account on BYOC (BYOC documentation) |
| Workflow artifacts and run logs | Uploaded from the runner | GitHub storage under your repository, 90 days by default (GitHub Actions limits, checked on 2026-08-13) |
| Build secrets | Present in the runner environment for the length of the job | Nowhere on the WarpBuild side. WarpBuild does not access or store any build secrets, which stay in your source code repository (security docs) |
| Snapshot images | Written by the snapshot save action if you enabled snapshot runners | WarpBuild snapshot storage, covered in what happens to runner disks after a job |
The volume in row one has a published size per platform, which is the number to check when a build writes large intermediate output. The per-job disk differs across them.
| Platform | Per-job disk | Example label |
|---|---|---|
| Ubuntu x64 and ARM64 | 150GB SSD | warp-ubuntu-latest-x64-4x |
| macOS 6x | 120GB SSD | warp-macos-latest-arm64-6x |
| macOS 12x | 270GB SSD | warp-macos-latest-arm64-12x |
| Windows | 256GB SSD | warp-windows-latest-x64-4x |
Sizes come from the WarpBuild runner catalog, checked on 2026-08-13. Every label in the table resolves to a fresh virtual machine with a fresh volume, so the disk starts empty on each run regardless of size.
Detail
Reading a workflow as a storage map
The clearest way to see placement is to annotate a workflow by destination. Three steps in this file write to three different places.
name: build
on:
pull_request:
jobs:
build:
runs-on: warp-ubuntu-latest-x64-4x
steps:
- uses: actions/checkout@v5
- name: Restore dependency cache
uses: WarpBuilds/cache@v1
with:
path: ~/.npm
key: npm-${{ hashFiles('**/package-lock.json') }}
- name: Build
run: npm ci && npm run build
- name: Upload the build output
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 7actions/checkout writes the repository onto the runner volume. npm ci and npm run build write node_modules/ and dist/ next to it. All of that is inside the per-job virtual machine and goes away when the job ends.
The cache step is the first exit. It copies ~/.npm into cache storage, which is WarpBuild cache storage on hosted runners and the object storage bucket in your own account on BYOC. The upload step is the second exit, and it does not touch WarpBuild at all: artifacts land in GitHub storage under the repository, retained 90 days by default unless retention-days shortens it (GitHub Actions limits, checked on 2026-08-13).
Choosing what goes into path is the whole control surface for the first exit. Naming a package manager download directory keeps registry archives in cache storage and keeps your working tree out of it.
Region control on hosted runners
US and EU are the regions WarpBuild names publicly. On enterprise plans, cloud runners can be deployed on region-specific infrastructure so the data you select stays in that region, and that option does not cover macOS instances. The US data residency page and the EU data residency page carry the wording a written residency clause needs.
The attestation behind the storage model is SOC 2 Type 2 with three Trust Services Criteria: Security, Availability, and Confidentiality. Request the report and the supporting security documentation at trust.warpbuild.com. The security review checklist for GitHub Actions runners puts that evidence next to the four other questions reviewers ask in the same session.
The BYOC path when the data plane has to be yours
BYOC runs on AWS, GCP, and Azure. A WarpBuild Stack creates the VPC, subnets, and one object storage bucket inside your account, and the bucket holds cache, container image layer caches, workflow artifacts the platform writes, and runner logs (BYOC documentation). Runner instances launch in the same account and terminate when the job finishes.
Two properties of that setup matter for a residency answer. The stack name, object storage location, and region cannot be changed after creation, so placement is decided once, before any runner exists. And the bucket sits under your own IAM, your own encryption settings, your own access logging, and your own lifecycle policy, which is where retention becomes a decision you make rather than a setting you read.
What placement costs
A hosted warp-ubuntu-latest-x64-4x job bills at $0.008 per minute, and BYOC Linux and Windows runners carry a WarpBuild fee of $0.002 per minute with the compute billed by your own cloud account (pricing page, checked on 2026-08-13). Every cost number here carries a source link and a checked-on date, and the same numbers appear on the pricing page.
Related Questions
Which regions does WarpBuild name for its own runner infrastructure?
US and EU. Enterprise plans can pin hosted cloud runners to region-specific infrastructure so the data you choose stays in that region, and that option does not apply to macOS instances. Start with the US data residency page or the EU data residency page.
What is stored outside the runner during a normal build?
Three things. Cache entries go to WarpBuild cache storage on hosted runners or to your stack bucket on BYOC, workflow artifacts and run logs go to GitHub storage under your repository at a 90 day default (GitHub Actions limits, checked on 2026-08-13), and snapshot images exist only if you turned snapshot runners on.
How do I keep every stored byte inside an account I control?
Run BYOC. The runner instances and the object storage bucket that holds cache, container image layer caches, and telemetry are created inside your own AWS, GCP, or Azure account, in the region you pick when you create the stack (BYOC documentation). Hand a reviewer the security review checklist alongside your own account evidence, and check per-minute rates on the pricing page.
Start with $10 in free credits
Change the runner label in your workflow and keep the rest of your GitHub Actions setup. Runner time is billed per minute.