Enable live app updater on production variants
Build Dev ISOs / build-dev-android (push) Canceled after 0s
Build Dev ISOs / build-dev-commercial (push) Canceled after 0s
Build Dev ISOs / build-dev-kiosk (push) Canceled after 1m10s

All variants now follow the same update procedure as the dev flakes;
prod variants pull the RadiantWave binary, Attic repo, and manifest
from the radiantwave channel instead of radiantwave-dev.
This commit is contained in:
NeilClack
2026-08-28 16:37:13 -05:00
parent ca89c234ab
commit 05bb98b107
4 changed files with 37 additions and 52 deletions
+25 -12
View File
@@ -55,15 +55,17 @@
revision = self.rev or self.dirtyRev or null;
# Live app-update side channel, dev-only for now. The manifest is
# served by the fileserver; closures are fetched (never built) from the
# dev Attic cache. Promotes to prod once validated.
radiantwaveDevUpdaterModule = { baseline }: {
# Live app-update side channel. The manifest is served by the
# fileserver; closures are fetched (never built) from the variant's
# Attic cache. `repo` selects the channel — "radiantwave" (prod,
# ?ref=main) or "radiantwave-dev" (dev, ?ref=dev). All variants follow
# this same update procedure; only the channel differs.
radiantwaveUpdaterModule = { repo, baseline }: {
services.radiantwaveUpdater = {
enable = true;
manifestUrl = "https://files.radiantwavetech.com/radiantwave-dev/manifest.json";
atticUrl = "https://attic.radiantwavetech.com/radiantwave-dev";
baselinePackage = baseline;
manifestUrl = "https://files.radiantwavetech.com/${repo}/manifest.json";
atticUrl = "https://attic.radiantwavetech.com/${repo}";
};
};
@@ -192,8 +194,9 @@
# Kiosk systems.
#
# Production variants consume the `radiantwave` input (?ref=main);
# `-dev` variants consume `radiantwave-dev` (?ref=dev) and track the
# dev branch of this repo via their autoUpgrade flake refs.
# `-dev` variants consume `radiantwave-dev` (?ref=dev). All variants
# run the same live-app updater against their channel's Attic repo and
# manifest, and track this repo's matching branch via autoUpgrade.
nixosConfigurations = {
radiantwavekiosk = mkKioskSystem {
system = "x86_64-linux";
@@ -201,6 +204,9 @@
hostName = "radiantwavekiosk";
diskModule = ./disk-config.nix;
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk";
extraModules = [
(radiantwaveUpdaterModule { repo = "radiantwave"; baseline = radiantwave.packages.x86_64-linux.default; })
];
};
radiantwavekiosk-dev = mkKioskSystem {
system = "x86_64-linux";
@@ -209,7 +215,7 @@
diskModule = ./disk-config.nix;
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-dev";
extraModules = [
(radiantwaveDevUpdaterModule { baseline = radiantwave-dev.packages.x86_64-linux.default; })
(radiantwaveUpdaterModule { repo = "radiantwave-dev"; baseline = radiantwave-dev.packages.x86_64-linux.default; })
];
};
radiantwavekiosk-commercial = mkKioskSystem {
@@ -218,6 +224,9 @@
hostName = "radiantwavekiosk-commercial";
diskModule = ./commercial-disk-config.nix;
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk-commercial";
extraModules = [
(radiantwaveUpdaterModule { repo = "radiantwave"; baseline = radiantwave.packages.x86_64-linux.default; })
];
};
radiantwavekiosk-commercial-dev = mkKioskSystem {
system = "x86_64-linux";
@@ -226,7 +235,7 @@
diskModule = ./commercial-disk-config.nix;
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-commercial-dev";
extraModules = [
(radiantwaveDevUpdaterModule { baseline = radiantwave-dev.packages.x86_64-linux.default; })
(radiantwaveUpdaterModule { repo = "radiantwave-dev"; baseline = radiantwave-dev.packages.x86_64-linux.default; })
];
};
# Rotated screen for android-style displays.
@@ -238,6 +247,7 @@
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk-android";
extraModules = [
./rotated_display.nix
(radiantwaveUpdaterModule { repo = "radiantwave"; baseline = radiantwave.packages.x86_64-linux.default; })
];
};
radiantwavekiosk-android-dev = mkKioskSystem {
@@ -248,7 +258,7 @@
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-android-dev";
extraModules = [
./rotated_display.nix
(radiantwaveDevUpdaterModule { baseline = radiantwave-dev.packages.x86_64-linux.default; })
(radiantwaveUpdaterModule { repo = "radiantwave-dev"; baseline = radiantwave-dev.packages.x86_64-linux.default; })
];
};
# Raspberry Pi 5.
@@ -256,13 +266,16 @@
radiantwave = radiantwave;
hostName = "radiantwavekiosk-rpi";
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk-rpi";
extraModules = [
(radiantwaveUpdaterModule { repo = "radiantwave"; baseline = radiantwave.packages.aarch64-linux.default; })
];
};
radiantwavekiosk-rpi-dev = mkRpiKioskSystem {
radiantwave = radiantwave-dev;
hostName = "radiantwavekiosk-rpi-dev";
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-rpi-dev";
extraModules = [
(radiantwaveDevUpdaterModule { baseline = radiantwave-dev.packages.aarch64-linux.default; })
(radiantwaveUpdaterModule { repo = "radiantwave-dev"; baseline = radiantwave-dev.packages.aarch64-linux.default; })
];
};