3 Commits
Author SHA1 Message Date
NeilClack 6019be6359 Add attic verification
build-dev / nix-build (push) Canceled after 26s
2026-09-01 10:53:57 -05:00
NeilClack fee31c87b8 Add manifest upload to release workflow 2026-08-28 16:51:53 -05:00
NeilClack 5369532ab4 Merge pull request 'Fix audio device problems' (#1) from dev into main
Reviewed-on: #1
2026-08-28 21:30:12 +00:00
2 changed files with 43 additions and 1 deletions
+14
View File
@@ -67,6 +67,20 @@ jobs:
attic login radiantwave https://attic.radiantwavetech.com "$ATTIC_TOKEN" attic login radiantwave https://attic.radiantwavetech.com "$ATTIC_TOKEN"
attic push radiantwave:radiantwave-dev ./result-pkg attic push radiantwave:radiantwave-dev ./result-pkg
# 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
# manifest below is never published.
- 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)"
rm -rf "$PWD/.attic-verify-store"
# Publish the manifest kiosks poll for live app updates. `storePath` # Publish the manifest kiosks poll for live app updates. `storePath`
# must match exactly the closure pushed to the dev Attic cache above # must match exactly the closure pushed to the dev Attic cache above
# (readlink resolves the result-pkg out-link symlink to its real # (readlink resolves the result-pkg out-link symlink to its real
+29 -1
View File
@@ -2,7 +2,7 @@ name: build-main
on: on:
# Manual only. Dispatch against main: build, run the offline test suite, # Manual only. Dispatch against main: build, run the offline test suite,
# publish to the release Attic cache. # publish to the release Attic cache and live-update manifest.
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@@ -74,3 +74,31 @@ jobs:
run: | run: |
attic login radiantwave https://attic.radiantwavetech.com "$ATTIC_TOKEN" attic login radiantwave https://attic.radiantwavetech.com "$ATTIC_TOKEN"
attic push radiantwave:radiantwave ./result-pkg attic push radiantwave:radiantwave ./result-pkg
# 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
# manifest below is never published.
- 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)"
rm -rf "$PWD/.attic-verify-store"
# Publish the manifest production kiosks poll for live app updates.
# `storePath` must match exactly the closure pushed to the release 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/manifest.json