use more specific primary-key and prefix-match
This commit is contained in:
parent
3a621723d1
commit
1d7b20d51d
1 changed files with 59 additions and 4 deletions
63
.github/workflows/build-and-cache.yml
vendored
63
.github/workflows/build-and-cache.yml
vendored
|
@ -3,6 +3,61 @@ on:
|
|||
workflow_dispatch:
|
||||
push:
|
||||
jobs:
|
||||
build-packages:
|
||||
strategy:
|
||||
matrix:
|
||||
package:
|
||||
- github:cything/nixpkgs/928e0c6874ab3e759305e93f806a4cf559645677#alvr
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
- ubuntu-24.04-arm
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@v30
|
||||
|
||||
- name: Sync repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: cachix/cachix-action@v14
|
||||
with:
|
||||
name: cything
|
||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||
useDaemon: false
|
||||
installCommand: nix profile install nixpkgs#cachix
|
||||
|
||||
- name: Setup Attic cache
|
||||
uses: ryanccn/attic-action@v0
|
||||
with:
|
||||
endpoint: ${{ vars.ATTIC_ENDPOINT }}
|
||||
cache: ${{ vars.ATTIC_CACHE }}
|
||||
token: ${{ secrets.ATTIC_TOKEN }}
|
||||
|
||||
- name: Restore and cache Nix store
|
||||
uses: nix-community/cache-nix-action@v5.1.0
|
||||
with:
|
||||
# restore and save a cache using this key
|
||||
primary-key: nix-${{ runner.os }}-${{ matrix.machine }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
|
||||
# if there's no cache hit, restore a cache by this prefix
|
||||
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.machine }}-
|
||||
# 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
|
||||
|
||||
- run: nix build -L ${{ matrix.package }}
|
||||
|
||||
build-machines:
|
||||
strategy:
|
||||
matrix:
|
||||
|
@ -53,9 +108,9 @@ jobs:
|
|||
uses: nix-community/cache-nix-action@v5.1.0
|
||||
with:
|
||||
# restore and save a cache using this key
|
||||
primary-key: nix-${{ runner.os }}-${{ matrix.machine }}-${{ hashFiles('flake.lock') }}
|
||||
primary-key: nix-${{ runner.os }}-${{ matrix.machine }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
|
||||
# if there's no cache hit, restore a cache by this prefix
|
||||
restore-prefixes-first-match: nix-${{ runner.os }}-
|
||||
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.machine }}-
|
||||
# do purge caches
|
||||
purge: true
|
||||
# purge all versions of the cache
|
||||
|
@ -119,9 +174,9 @@ jobs:
|
|||
uses: nix-community/cache-nix-action@v5.1.0
|
||||
with:
|
||||
# restore and save a cache using this key
|
||||
primary-key: nix-${{ runner.os }}-${{ matrix.home }}-${{ hashFiles('flake.lock') }}
|
||||
primary-key: nix-${{ runner.os }}-${{ matrix.home }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
|
||||
# if there's no cache hit, restore a cache by this prefix
|
||||
restore-prefixes-first-match: nix-${{ runner.os }}-
|
||||
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.home }}-
|
||||
# do purge caches
|
||||
purge: true
|
||||
# purge all versions of the cache
|
||||
|
|
Loading…
Add table
Reference in a new issue