summaryrefslogtreecommitdiff
path: root/Biz/Dragons
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2025-11-15 09:36:40 -0500
committerBen Sima <ben@bsima.me>2025-11-15 09:36:40 -0500
commit905c6aa06c00150f0c051ead776a64aee0b2212c (patch)
tree7d7159ebf4befb1d9c13e1bd4e4dc177c8e0599b /Biz/Dragons
parent027ff609365dd0775823b7cb45b8d2d06ee3a35d (diff)
Refactor NixOS integration to use pre-declared targets
Problem: Calling bild.run inside NixOS configs triggers recursive builds during OS image creation, causing slow IFD evaluations that worsen as complexity grows. Solution: Create Biz/Targets.nix that pre-declares all buildable targets as an attribute set. NixOS configs now import and reference these targets directly, eliminating recursive builds during evaluation. Changes: - Add Biz/Targets.nix exposing storybook, podcastitlater-web, podcastitlater-worker, dragons-analysis - Update Biz.nix to import targets and reference them - Update Biz/Dragons/Analysis.nix to use targets pattern Benefits: - All bild.run calls happen once at top level during targets evaluation - NixOS service configs reference pre-built derivations - Scalable: adding targets doesn't slow individual builds - Explicit: clear what gets built for each OS Amp-Thread-ID: https://ampcode.com/threads/T-bc0f6fc7-46bf-4aa2-892e-dd62e7251d4b Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'Biz/Dragons')
-rwxr-xr-xBiz/Dragons/Analysis.nix32
1 files changed, 17 insertions, 15 deletions
diff --git a/Biz/Dragons/Analysis.nix b/Biz/Dragons/Analysis.nix
index 5ea8713..de641e8 100755
--- a/Biz/Dragons/Analysis.nix
+++ b/Biz/Dragons/Analysis.nix
@@ -1,16 +1,18 @@
#!/usr/bin/env run.sh
-{bild}:
-# Run this like so:
-#
-# bild Biz/Dragons/Analysis.nix
-# docker load < _/nix/Biz/Dragons/Analysis.nix
-# docker run --volume $PWD:/src dragons-analyze dragons-analyze /src/.git
-bild.image {
- name = "dragons-analyze";
- tag = "latest";
- fromImage = null;
- fromImageName = null;
- fromImageTag = "latest";
- contents = [bild.pkgs.git (bild.run ./Analysis.hs)];
- config.Cmd = ["/bin/dragons-analyze"];
-}
+{bild}: let
+ targets = import ../Targets.nix {inherit bild;};
+in
+ # Run this like so:
+ #
+ # bild Biz/Dragons/Analysis.nix
+ # docker load < _/nix/Biz/Dragons/Analysis.nix
+ # docker run --volume $PWD:/src dragons-analyze dragons-analyze /src/.git
+ bild.image {
+ name = "dragons-analyze";
+ tag = "latest";
+ fromImage = null;
+ fromImageName = null;
+ fromImageTag = "latest";
+ contents = [bild.pkgs.git targets.dragons-analysis];
+ config.Cmd = ["/bin/dragons-analyze"];
+ }