From 5be30cbc7c483894d1abcc324e627ff7d4b6e0ba Mon Sep 17 00:00:00 2001 From: Zuckerberg Date: Thu, 19 Feb 2026 21:43:16 -0800 Subject: [PATCH] speed up push --- .gitea/workflows/check-flake.yaml | 19 ++++++++----------- common/binary-cache.nix | 2 -- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/check-flake.yaml b/.gitea/workflows/check-flake.yaml index bb8c8ca..8555e6c 100644 --- a/.gitea/workflows/check-flake.yaml +++ b/.gitea/workflows/check-flake.yaml @@ -18,19 +18,16 @@ jobs: - name: Check Flake run: nix flake check --all-systems --print-build-logs --log-format raw --show-trace - - name: Debug - env: - ATTIC_ENDPOINT_VAR: ${{ vars.ATTIC_ENDPOINT }} - ATTIC_TOKEN_VAR: ${{ secrets.ATTIC_TOKEN }} - run: | - echo "Endpoint length: ${#ATTIC_ENDPOINT_VAR}" - echo "Token length: ${#ATTIC_TOKEN_VAR}" - - name: Push to cache env: XDG_CONFIG_HOME: ${{ runner.temp }}/.config run: | attic login local "${{ vars.ATTIC_ENDPOINT }}" "${{ secrets.ATTIC_TOKEN }}" - nix eval .#nixosConfigurations --apply 'cs: map (n: "${cs.${n}.config.system.build.toplevel}") (builtins.attrNames cs)' --json \ - | jq -r '.[]' \ - | xargs attic push nixos + # 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 '.[]') + # Expand to full closures, deduplicate, and filter out paths already + # signed by cache.nixos.org — only our custom builds need caching + echo "$toplevels" \ + | xargs nix path-info -r --json \ + | jq -r '[.[] | select((.signatures // []) | all(startswith("cache.nixos.org") | not)) | .path] | unique[]' \ + | xargs attic push local:nixos 1>/dev/null diff --git a/common/binary-cache.nix b/common/binary-cache.nix index 8cdd1c5..06f4dbb 100644 --- a/common/binary-cache.nix +++ b/common/binary-cache.nix @@ -7,12 +7,10 @@ "https://cache.nixos.org/" "https://nix-community.cachix.org" "http://s0.koi-bebop.ts.net:28338/nixos" - # "http://s0.koi-bebop.ts.net:5000" ]; trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nixos:SnTTQutdOJbAmxo6AQ3cbRt5w9f4byMXQODCieBH3PQ=" - # "s0.koi-bebop.ts.net:OjbzD86YjyJZpCp9RWaQKANaflcpKhtzBMNP8I2aPUU=" ]; # Allow substituters to be offline