# Avrea Cache

import { Card, CardGrid } from '@astrojs/starlight/components';

Avrea Cache eliminates the network round-trips that slow down GitHub Actions workflows. Your builds hit caches colocated with your runners instead of fetching from remote storage.

Five cache types work together, each targeting a different part of the pipeline:

<CardGrid>
 <Card title="GitHub Actions Cache" icon="rocket">
  Drop-in replacement for GitHub's built-in cache. Works with `actions/cache@v4+` and language setup actions. No workflow changes.
  [Learn more →](/cache/github-actions/)
 </Card>
 <Card title="Git Checkout Acceleration" icon="git-branch">
  Preloads repositories and eligible submodules from datacenter-local Git mirrors before `actions/checkout` runs.
  [Learn more →](/cache/git-checkout/)
 </Card>
 <Card title="Git LFS Cache" icon="download">
  Pull-through caching for large files stored with Git LFS. Repeated checkouts avoid downloading the same objects from GitHub again.
  [Learn more →](/cache/git-lfs/)
 </Card>
 <Card title="Build Cache" icon="setting">
  Remote caching for build tools. Shares compilation artifacts across jobs and branches so rebuilds only recompile what changed.
  [Learn more →](/cache/build-cache/overview/)
 </Card>
 <Card title="Package Cache" icon="document">
  Pull-through proxy for package registries. Caches downloaded packages locally so `npm install`, `pip install`, and `go mod download` resolve instantly on repeat runs.
  [Learn more →](/cache/packages/overview/)
 </Card>
</CardGrid>

## How it works

All five caches run on the same infrastructure as your Avrea runners. When a workflow runs:

1. **GitHub Actions cache** requests route to a local proxy instead of GitHub's remote storage.
2. **Git checkout** prepares repositories from datacenter-local mirrors when enabled.
3. **Git LFS** downloads pass through a repository-scoped local cache when enabled.
4. **Build tools** (Go, Bazel, Gradle, etc.) are pre-configured to use a colocated remote cache.
5. **Package managers** (npm, pip, Cargo, etc.) resolve through a local pull-through proxy.

No self-hosted infrastructure to manage. No S3 buckets to configure. Avrea handles storage, eviction, and lifecycle.

## What's automatic

On Avrea runners, most caching is pre-configured:

| Layer | Configuration | What you do |
|-------|--------------|-------------|
| GitHub Actions | Fully automatic | Use `actions/cache@v4+` as normal |
| Git checkout | Automatic when enabled | Turn on **Git Checkout Acceleration**; keep using `actions/checkout` |
| Git LFS | Automatic when enabled | Turn on **Git LFS Cache**; keep using Git LFS as normal |
| Build cache | Environment variables and config files injected | Some tools need minor workflow additions |
| Package cache | Registry URLs pre-configured | Package managers resolve through cache automatically |

See the individual integration pages for tool-specific details.

## Understand cache stats

Workflow runs and jobs show cache hit rates, bytes served and written, transfer
errors, and supported build-client details. See [Cache Stats](/cache/stats/)
for field definitions, coverage states, and the additional diagnostics available
for GitHub Actions, package, Go, Xcode, and Gradle caches.

## Storage and limits

- **Default quota:** 25 GB per repository for regular cache entries
- **Eviction:** Least-recently-used entries are evicted when quota is exceeded
- **Retention:** Unused entries become eligible for eviction after 7 days

Organization-private Swift package payloads use separate, organization-isolated
artifact storage and do not count against the repository cache quota.

See [Storage & Eviction](/cache/storage/) for details.