This commit is contained in:
@@ -22,13 +22,17 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
XDG_CONFIG_HOME: ${{ runner.temp }}/.config
|
XDG_CONFIG_HOME: ${{ runner.temp }}/.config
|
||||||
run: |
|
run: |
|
||||||
|
set -euxo pipefail
|
||||||
|
export XDG_CONFIG_HOME="$(mktemp -d)"
|
||||||
mkdir -p "$XDG_CONFIG_HOME/attic"
|
mkdir -p "$XDG_CONFIG_HOME/attic"
|
||||||
attic login local "${{ vars.ATTIC_ENDPOINT }}" "${{ secrets.ATTIC_TOKEN }}"
|
attic login local "${{ vars.ATTIC_ENDPOINT }}" "${{ secrets.ATTIC_TOKEN }}"
|
||||||
# Get all system toplevel store paths
|
# Get all system toplevel store paths
|
||||||
toplevels=$(nix eval .#nixosConfigurations --apply 'cs: map (n: "${cs.${n}.config.system.build.toplevel}") (builtins.attrNames cs)' --json | jq -r '.[]')
|
toplevels=$(nix eval .#nixosConfigurations --apply 'cs: map (n: "${cs.${n}.config.system.build.toplevel}") (builtins.attrNames cs)' --json | jq -r '.[]')
|
||||||
|
echo "Found $(echo "$toplevels" | wc -l) system toplevels"
|
||||||
# Expand to full closures, deduplicate, and filter out paths already
|
# Expand to full closures, deduplicate, and filter out paths already
|
||||||
# signed by cache.nixos.org — only our custom builds need caching
|
# signed by cache.nixos.org — only our custom builds need caching
|
||||||
echo "$toplevels" \
|
paths=$(echo "$toplevels" \
|
||||||
| xargs nix path-info -r --json \
|
| xargs nix path-info -r --json \
|
||||||
| jq -r '[.[] | select((.signatures // []) | all(startswith("cache.nixos.org") | not)) | .path] | unique[]' \
|
| jq -r '[.[] | select((.signatures // []) | all(startswith("cache.nixos.org") | not)) | .path] | unique[]')
|
||||||
| xargs attic push local:nixos 1>/dev/null
|
echo "Pushing $(echo "$paths" | wc -l) unique paths to cache"
|
||||||
|
echo "$paths" | xargs attic push local:nixos
|
||||||
|
|||||||
Reference in New Issue
Block a user