From 5ed059610353dd7e94d44da569c934e94e33a2f3 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 6 Feb 2026 12:06:43 +0100 Subject: [PATCH] CI: try to add caching for nix build. --- .github/workflows/ci.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c16c23b7c..b4c5fad08 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -150,6 +150,31 @@ jobs: - uses: cachix/install-nix-action@v31 with: nix_path: nixpkgs=channel:nixos-unstable + nix_conf: | + keep-env-derivations = true + keep-outputs = true + - 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 this duration (ISO 8601 duration format) + # before the start of the `Post Restore and save Nix store` phase + purge-last-accessed: P1DT12H + # except any version with the key that is the same as the `primary-key` + purge-primary-key: never - name: Cache cabal work id: cabal-local uses: actions/cache@v5