summary refs log tree commit diff
path: root/nixos/release.nix
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/release.nix
parentfec81c392f255fed231d13e9ca363632648a05c5 (diff)
downloadnixpkgs-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar
nixpkgs-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.gz
nixpkgs-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.bz2
nixpkgs-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.lz
nixpkgs-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.xz
nixpkgs-7cdb1bb8aa7a0f559958f56fb53e65608d751117.tar.zst
nixpkgs-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/release.nix')
-rw-r--r--nixos/release.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/nixos/release.nix b/nixos/release.nix
index ed413d3e928..0620b46d46a 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 ];
+      });
+
+  };
+
 }