- All playbooks
- Caching and setup
- Install prebuilt packages and toolchains
Install prebuilt packages and toolchains
Download compatible prebuilt dependencies instead of compiling the same toolchain or package during every CI run.
How companies used this technique
Read what each company changed and follow the original sources.
Install prebuilt packages
The Python SDK selected NumPy versions that ship wheels for every supported interpreter, so installs download a binary. The same PR restored environment caching and ran only the HTTPX 2 suite in the HTTPX 2 job; the job timings cover all three changes. OpenAI later moved the repository to uv (openai/openai-python#3653).
HTTPX 2 job 10m42s to 2m12s; Python 3.14 job 8m37s to 1m53s Source
Repository moved to uv; the NumPy wheel selection carried into uv.lock Source
- Use it when
- Install logs show a source build for a dependency that also ships compatible binaries.
- Before applying it
- Check interpreter, platform and dependency compatibility for every version in the matrix before pinning.
Download the compiler your build depends on
SubmitQueue registered a prebuilt protoc toolchain, so cold builds no longer compile protoc and its C++ dependencies. The same 35 tests passed before and after.
On the author's machine, a cold make test after bazel clean took about 84s before and about 11s after, with the same 35 tests passing. Source
- Use it when
- Cold runs spend substantial time compiling an upstream tool that has a compatible, trusted binary release.
- Before applying it
- Verify platform support, compiler compatibility, checksums and generated output, and keep a source build for platforms without a binary release.
Company Playbooks
- Read Anthropic’s playbookRun only affected tests
- Read DoorDash’s playbookRun build and test in parallel, sharded across CI agents
- Read Linear’s playbookBenchmark the same job on faster hardware
- Read Mastra’s playbookStarSling runners for the slowest test workflow
- Read OpenAI’s playbookRank CI fixes by the minutes they save
- Read Ramp’s playbookMove a CPU-bound test suite to a faster CPU
- Read Shopify’s playbookLet an agent iterate against one CI metric
- Read Spotify’s playbookBuild arm64 on native arm64 runners
- Read Stripe’s playbookRun only the tests a change can reach
- Read Uber’s playbookBuild the merge-queue speculations most likely to be needed