Caching
Nix GitLab CI supports several caching mechanisms to speed up your pipelines.
GitLab Runner Cache
The runner cache strategy copies the new store paths into a directory .nix-cache
,
which is then saved in the regular GitLab cache (technically runner cache).
It's also configured as a substituter automatically.
To enable, set the cache strategy to runner
.
Configure it using these environment variables:
RUNNER_CACHE
: path to the runner cache (default.nix-cache
)
Warning
This is very inefficient and should probably only be used for very very small dependency counts. Otherwise it takes an eternity to save to cache.
Cachix
Cachix is a hosted binary cache service that can significantly speed up Nix builds by sharing build results.
To enable, set the cache strategy to attic
.
Configure it using these environment variables:
CACHIX_CACHE
: name of the cache to use- (
CACHIX_AUTH_TOKEN
): cachix client itself uses this for authentication
Warning
Cachix has not been tested. Feedback is appreciated :)
Attic (Self-Hosted Cache)
Attic is a self-hosted, deduplicating binary cache. It's a great option if you want more control over your caching infrastructure and to have the cache closer to your runners.
To enable, set the cache strategy to attic
.
Configure it using these environment variables:
ATTIC_SERVER
: URL of the serverATTIC_CACHE
: name of the cache to useATTIC_TOKEN
: auth token from the attic server