This repository demonstrates how to use WarpBuild snapshots to speed up DDEV in GitHub Actions CI pipelines.
See the accompanying blog post: Using WarpBuild to speed up DDEV in CI
determine-snapshotjob hashes key files (workflow, yarn config, lockfile) to create a snapshot key.build-and-testjob requests a WarpBuild runner with that snapshot key.- If a snapshot exists, the runner starts with DDEV already installed (fast path).
- If no snapshot exists, DDEV is installed from scratch.
- DDEV starts and tests run.
- On first run (no snapshot), the runner state is saved as a new snapshot for future runs.
- Connect your GitHub repository to WarpBuild and enable Snapshots.
- Copy
.github/workflows/test.ymlto your project. - Update the workflow to match your project:
- Adjust the snapshot hash inputs (
catcommand indetermine-snapshot) to include files that affect your CI environment. - Update the DDEV version in both the
runs-onsnapshot key and theInstall ddevstep. - Replace
my-projectin the snapshot key with your project name. - Update the cache paths to match your project's dependency locations.
- Replace the test commands in the
Run testsstep with your own.
- Adjust the snapshot hash inputs (
Include [warp-no-snapshot] in a commit message to run on a fresh WarpBuild runner without snapshot restore.
.github/workflows/test.yml- The complete GitHub Actions workflowtest/playwright/.yarnrc.yml- Placeholder Yarn config (hashed for snapshot key)test/playwright/yarn.lock- Placeholder lockfile (hashed for snapshot key)