diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50e4f51f..cc11a226 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -190,29 +190,38 @@ jobs: - name: Sync repository uses: actions/checkout@v4 - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - with: - diagnostic-endpoint: "" - extra-conf: | - experimental-features = nix-command flakes - accept-flake-config = true + - uses: nixbuild/nix-quick-install-action@v28 - - name: Install and enable Cachix binary cache + - name: Enable Cachix binary cache run: | nix profile install nixpkgs#cachix cachix use crane cachix use nix-community - - name: Configure Magic Nix Cache - uses: DeterminateSystems/magic-nix-cache-action@main + - name: Restore and cache Nix store + uses: nix-community/cache-nix-action@v5 with: - diagnostic-endpoint: "" - upstream-cache: "https://cache.nixos.org" + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ matrix.target }}-${{ hashFiles('**/*.nix', '**/.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}- + # collect garbage until Nix store size (in bytes) is at most this number + # before trying to save a new cache + gc-max-store-size-linux: 2073741824 + # do purge caches + purge: true + # purge all versions of the cache + purge-prefixes: nix-${{ runner.os }}- + # created more than this number of seconds ago relative to the start of the `Post Restore` phase + purge-last-accessed: 86400 + # except the version with the `primary-key`, if it exists + purge-primary-key: never + # always save the cache + save-always: true - name: Apply Nix binary cache configuration run: | - sudo tee -a /etc/nix/nix.conf > /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < /dev/null < /dev/null <