Get to the build sooner: Git pre-checkout, LFS caching, and submodules

Your runner has CPU to spare, but the build has not started. It is still downloading source code, fetching submodules, or waiting for large Git LFS files. Avrea accelerates all three: prepare Git repositories while the runner starts, reuse large files from nearby storage, and preload the dependencies your repository already pins.
Checkout time counts too
The first bottleneck in a CI job often arrives before the first build step. A large repository takes time to transfer and submodules add more repositories to fetch. Git LFS adds a separate set of downloads for assets that can dwarf the source code itself.
Repeat that across a test matrix, a stream of pull requests, and a few retries, and the same data moves again and again. Faster CPUs help once the work reaches them. Getting the inputs onto the runner sooner makes that hardware useful sooner.
Avrea gives you three controls for this part of the job: Git Checkout Acceleration, Git LFS Cache, and Git Submodule Pre-checkout. Enable the ones your repository needs.
Git pre-checkout: prepare the repository while the runner starts
With Git Checkout Acceleration enabled, Avrea maintains a Git mirror in the runner's datacenter. While a Linux or macOS runner starts, Avrea can prepare the workflow's repository from that nearby mirror.
By the time your checkout step runs, the repository can already be in place. actions/checkout can reuse the prepared Git objects instead of fetching them all from GitHub.
There are two benefits: the transfer comes from nearby storage, and preparation starts before the job's normal checkout step. Large source trees and workflows that repeatedly check out the same repository have more repeated transfer work to eliminate.
Also there are no changes you need done to your workflows, just keep using actions/checkout in your workflow. It still determines the final checkout according to your inputs. Root pre-checkout requires no workflow changes, and an unavailable mirror or unsuccessful preload falls back to the ordinary GitHub checkout path. A newly enabled mirror may need an initial sync before it can help. See Git Checkout Acceleration.
Git LFS: reuse the large files
Game assets, model weights, media, and large test fixtures can make downloading the repository's contents much more expensive than downloading its source code. Those files may stay unchanged through dozens of commits, yet a fresh runner still needs them.
Git LFS Cache keeps downloaded objects in storage beside Avrea runners. The first request fills the cache; later checkouts of the same repository can reuse the object. Fewer repeat downloads from GitHub means less transfer work between a job and its first useful step.
Keep using lfs: true or your existing git lfs pull commands. GitHub continues to authorize transfers, and cached objects stay within the repository's cache boundary. Cache misses fall back to GitHub. The current integration covers Git LFS downloads made directly on the runner; downloads from inside containers are not intercepted. See Git LFS Cache.
Submodules: warm the repositories your build depends on
A repository with submodules can spend its checkout step fetching an entire dependency tree. Shared libraries, vendor code, and nested components each add another repository and another set of Git objects to transfer.
Git Submodule Pre-checkout extends preparation to eligible submodules. Avrea discovers them from the repository's pinned commit and prepares the corresponding Git objects. You do not need to maintain a second list of dependencies for the cache.
Choose top-level for direct submodules or recursive for nested dependencies. Your existing submodules: true or submodules: recursive input still controls what actions/checkout checks out. The action reuses available objects and fetches anything that was not prepared.
That lets teams keep the repository structure they already use while reducing repeated dependency fetches. A project can pin a shared library to an exact commit and benefit from having that commit ready locally.
Private submodules need authorization through the same GitHub App installation and a ready Avrea mirror. At repository scope, enable Git Checkout Acceleration for the root and each private submodule you want preloaded. Keep the workflow credentials required for ordinary private-submodule checkout, including fallback. See submodule setup.
Turn on the parts your repository uses
Open Settings → Cache in the Avrea console, at organization or repository level. Git Checkout Acceleration and Git LFS Cache default to off; submodule pre-checkout defaults to root-only preparation.
For a repository that uses all three, the equivalent CLI settings are:
avr settings set cache.git.enabled true
avr settings set cache.lfs.enabled true
avr settings set cache.git-submodules.mode recursive
Your checkout step remains familiar:
- uses: actions/checkout@v7
with:
lfs: true
submodules: recursive
Git pre-checkout prepares Git objects; the separate LFS cache handles large-file downloads. Keep any explicit LFS hydration steps your submodules already require. Root and submodule pre-checkout currently support GitHub repositories on Linux and macOS; Windows uses the normal checkout path.
A source-heavy project can start with Git Checkout Acceleration. An asset-heavy project can add LFS caching. A project with shared libraries can extend preparation into its submodules. Each removes a different source of repeated work, so your next CI job can spend more of its time building and testing the change you made.
Enable checkout acceleration in Avrea, let the caches warm, and compare the next runs with your current checkout times.





