From 3f6201182e01b3f62fa2353147ddb680b2ec3a7a Mon Sep 17 00:00:00 2001 From: NeilClack Date: Thu, 27 Aug 2026 20:58:13 -0500 Subject: [PATCH] Publish live-update manifest to fileserver (dev) After pushing the dev closure to Attic, write a small JSON manifest (version + storePath) to the fileserver for kiosks to poll. storePath is the readlink of the result-pkg out-link, so it matches exactly the closure pushed to the dev Attic cache and can be fetched with 'nix copy --from' without building from source. Upload goes to /mnt/infrastructure_data/files/radiantwave-dev/manifest.json via the build-server's radiantwave-infra SSH alias. --- .gitea/workflows/dev.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml index e603c25..d03ead2 100644 --- a/.gitea/workflows/dev.yml +++ b/.gitea/workflows/dev.yml @@ -66,3 +66,17 @@ jobs: run: | attic login radiantwave https://attic.radiantwavetech.com "$ATTIC_TOKEN" attic push radiantwave:radiantwave-dev ./result-pkg + + # Publish the manifest kiosks poll for live app updates. `storePath` + # must match exactly the closure pushed to the dev Attic cache above + # (readlink resolves the result-pkg out-link symlink to its real + # /nix/store path), so a kiosk can `nix copy --from` it without ever + # building from source. Upload mirrors the ISO scp pattern to the + # fileserver via the build-server's `radiantwave-infra` SSH alias. + - name: Publish manifest + run: | + STOREPATH=$(readlink -f ./result-pkg) + printf '{"version":"%s","storePath":"%s"}\n' "${{ env.APP_VERSION }}" "$STOREPATH" > manifest.json + cat manifest.json + scp manifest.json \ + radiantwave-infra:/mnt/infrastructure_data/files/radiantwave-dev/manifest.json