about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-22 11:37:31 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-22 11:41:15 +0200
commit7cdb1bb8aa7a0f559958f56fb53e65608d751117 (patch)
treef49342b4999e9fc86b73677964e9301d2a573b0a /nixos
parentfec81c392f255fed231d13e9ca363632648a05c5 (diff)
downloadnixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar
nixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.gz
nixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.bz2
nixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.lz
nixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.xz
nixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.zst
nixlib-7cdb1bb8aa7a0f559958f56fb53e65608d751117.zip
Build a few NixOS system closures on Hydra
This will allow us to keep track of the evolution of closure sizes of
some typical configurations. (Hydra stores closure sizes in its
database.)
Diffstat (limited to 'nixos')
-rw-r--r--nixos/release.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/nixos/release.nix b/nixos/release.nix
index ed413d3e928f..0620b46d46ad 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -78,6 +78,16 @@ let
         };
 
 
+  makeClosure = module: forAllSystems (system: (import ./lib/eval-config.nix {
+    inherit system;
+    modules = [ module ] ++ lib.singleton
+      ({ config, lib, ... }:
+      { fileSystems."/".device  = lib.mkDefault "/dev/sda1";
+        boot.loader.grub.device = lib.mkDefault "/dev/sda";
+      });
+  }).config.system.build.toplevel);
+
+
 in rec {
 
   channel =
@@ -242,4 +252,46 @@ in rec {
   tests.udisks2 = callTest tests/udisks2.nix {};
   tests.xfce = callTest tests/xfce.nix {};
 
+
+  /* Build a bunch of typical closures so that Hydra can keep track of
+     the evolution of closure sizes. */
+
+  closures = {
+
+    smallContainer = makeClosure ({ pkgs, ... }:
+      { boot.isContainer = true;
+        services.openssh.enable = true;
+      });
+
+    tinyContainer = makeClosure ({ pkgs, ... }:
+      { boot.isContainer = true;
+        imports = [ modules/profiles/minimal.nix ];
+      });
+
+    ec2 = makeClosure ({ pkgs, ... }:
+      { imports = [ modules/virtualisation/amazon-image.nix ];
+      });
+
+    kde = makeClosure ({ pkgs, ... }:
+      { services.xserver.enable = true;
+        services.xserver.displayManager.kdm.enable = true;
+        services.xserver.desktopManager.kde4.enable = true;
+      });
+
+    xfce = makeClosure ({ pkgs, ... }:
+      { services.xserver.enable = true;
+        services.xserver.desktopManager.xfce.enable = true;
+      });
+
+    # Linux/Apache/PostgreSQL/PHP stack.
+    lapp = makeClosure ({ pkgs, ... }:
+      { services.httpd.enable = true;
+        services.httpd.adminAddr = "foo@example.org";
+        services.postgresql.enable = true;
+        services.postgresql.package = pkgs.postgresql93;
+        environment.systemPackages = [ pkgs.php ];
+      });
+
+  };
+
 }