CI/Nix: add cache-nix-action

Use nixbuild/nix-quick-install-action which pairs well with
nix-community/cache-nix-action.

Should help with build times by reducing the number of packages needing
to be re-downloaded on each run.

Parameters are taken from https://github.com/nix-community/cache-nix-action
and may be tweaked later.
This commit is contained in:
Mihai Fufezan 2025-06-20 01:25:39 +03:00
parent 81dc1fe4f0
commit 7d63e15c09
No known key found for this signature in database

View File

@ -10,17 +10,41 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
submodules: recursive submodules: recursive
- name: Install nix
uses: cachix/install-nix-action@v20 - name: Install Nix
uses: nixbuild/nix-quick-install-action@v31
with: with:
install_url: https://nixos.org/nix/install nix_conf: |
extra_nix_config: | keep-env-derivations = true
auto-optimise-store = true keep-outputs = true
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
experimental-features = nix-command flakes - name: Restore and save Nix store
uses: nix-community/cache-nix-action@v6
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-
# collect garbage until the Nix store size (in bytes) is at most this number
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 1G
# do purge caches
purge: true
# purge all versions of the cache
purge-prefixes: nix-${{ runner.os }}-
# created more than this number of seconds ago
purge-created: 0
# or, last accessed more than this number of seconds ago
# relative to the start of the `Post Restore and save Nix store` phase
purge-last-accessed: 0
# except any version with the key that is the same as the `primary-key`
purge-primary-key: never
- uses: cachix/cachix-action@v12 - uses: cachix/cachix-action@v12
with: with:
name: hyprland name: hyprland
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build Hyprpaper with default settings - name: Build Hyprpaper with default settings
run: nix build --print-build-logs --accept-flake-config run: nix build --print-build-logs --accept-flake-config