Cache volumes now support macOS runners on fleets where the feature is enabled. GitHub Actions, Buildkite, and GitLab CI jobs can keep dependency downloads between runs by attaching a volume with a stable key and directory, such as ~/.npm or ~/.gradle/caches.
Each job gets its own writable copy of the saved contents. Eligible successful jobs on the default branch save changes for future runs, while pull requests and parallel jobs can reuse the cache independently. Linux and macOS volumes stay separate, even when they use the same key.

Open Runners → Volumes to see macOS and Linux volumes together. Each volume has storage trends, cache hit rates, and a history of the jobs that mounted it. The existing Tuist and Xcode compilation cache also appears here as measurements arrive, alongside the volumes you add to your workflows.
On macOS, use volumes for download caches; node_modules and tools that replace their cache directory are not supported. The cache volumes guide covers setup for all three CI providers and how changes are saved.