Fix attic verify: fetch deps from cache.nixos.org

The verify step fetched the closure from Attic alone, but Attic's
upstream-cache filter (cache.nixos.org-1) intentionally skips nixpkgs deps
like sqlite, so `nix copy` failed on 'path is not valid'. Mirror the kiosk
updater and fetch from Attic + cache.nixos.org together, Attic first so a
truncated RadiantWave NAR still fails before the manifest is published.
This commit is contained in:
NeilClack
2026-09-01 15:55:34 -05:00
parent 6019be6359
commit 356629a5a1
2 changed files with 24 additions and 12 deletions
+12 -6
View File
@@ -70,15 +70,21 @@ jobs:
# attic push can exit 0 while storing a truncated NAR (dropped
# connection, disk full on the attic host), which kiosks then fail to
# fetch. Re-fetch the whole closure into a throwaway store to verify
# every NAR; if the upload is incomplete, `nix copy` errors and the
# every NAR; if the upload is incomplete, `nix-store -r` errors and the
# manifest below is never published.
#
# NOTE: Attic's upstream-cache filter (upstream_cache_key_names =
# cache.nixos.org-1) intentionally skips re-uploading nixpkgs deps
# (e.g. sqlite) that are already signed by cache.nixos.org, so this must
# fetch from Attic AND cache.nixos.org together, exactly like the kiosk
# updater does. Attic stays the primary source (it's listed first, so a
# truncated RadiantWave NAR still fails here).
- name: Verify Attic upload
run: |
nix copy \
--from "https://attic.radiantwavetech.com/radiantwave-dev" \
--to "$PWD/.attic-verify-store" \
--no-check-sigs \
"$(readlink -f ./result-pkg)"
nix-store -r "$(readlink -f ./result-pkg)" \
--store "$PWD/.attic-verify-store" \
--option require-sigs false \
--option substituters "https://attic.radiantwavetech.com/radiantwave-dev https://cache.nixos.org"
rm -rf "$PWD/.attic-verify-store"
# Publish the manifest kiosks poll for live app updates. `storePath`
+12 -6
View File
@@ -78,15 +78,21 @@ jobs:
# attic push can exit 0 while storing a truncated NAR (dropped
# connection, disk full on the attic host), which kiosks then fail to
# fetch. Re-fetch the whole closure into a throwaway store to verify
# every NAR; if the upload is incomplete, `nix copy` errors and the
# every NAR; if the upload is incomplete, `nix-store -r` errors and the
# manifest below is never published.
#
# NOTE: Attic's upstream-cache filter (upstream_cache_key_names =
# cache.nixos.org-1) intentionally skips re-uploading nixpkgs deps
# (e.g. sqlite) that are already signed by cache.nixos.org, so this must
# fetch from Attic AND cache.nixos.org together, exactly like the kiosk
# updater does. Attic stays the primary source (it's listed first, so a
# truncated RadiantWave NAR still fails here).
- name: Verify Attic upload
run: |
nix copy \
--from "https://attic.radiantwavetech.com/radiantwave" \
--to "$PWD/.attic-verify-store" \
--no-check-sigs \
"$(readlink -f ./result-pkg)"
nix-store -r "$(readlink -f ./result-pkg)" \
--store "$PWD/.attic-verify-store" \
--option require-sigs false \
--option substituters "https://attic.radiantwavetech.com/radiantwave https://cache.nixos.org"
rm -rf "$PWD/.attic-verify-store"
# Publish the manifest production kiosks poll for live app updates.