summary refs log tree commit diff
path: root/release.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-03-26 14:00:31 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-03-26 14:00:31 +0100
commitf235cc2884e282cf1cfb49d9b2ce1f493c850c50 (patch)
tree7a6f9e3bc047993b165d40a5faa38321f0ea7da0 /release.nix
parent1b0acab1e50048d431644a68ee5c66aaac47d810 (diff)
downloadnixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.tar
nixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.tar.gz
nixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.tar.bz2
nixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.tar.lz
nixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.tar.xz
nixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.tar.zst
nixpkgs-f235cc2884e282cf1cfb49d9b2ce1f493c850c50.zip
Add an aggregated to replace the "tested" NixOS view
Also get rid of the "system" jobset input.
Diffstat (limited to 'release.nix')
-rw-r--r--release.nix307
1 files changed, 151 insertions, 156 deletions
diff --git a/release.nix b/release.nix
index 8c8851af51e..c8f144b74b2 100644
--- a/release.nix
+++ b/release.nix
@@ -1,21 +1,22 @@
-{ nixosSrc ? {outPath = ./.; revCount = 1234; shortRev = "abcdefg"; }
-, nixpkgs ? {outPath = <nixpkgs>; revCount = 5678; shortRev = "gfedcba"; }
-#, minimal ? false
+{ nixosSrc ? { outPath = ./.; revCount = 1234; shortRev = "abcdefg"; }
+, nixpkgsSrc ? { outPath = <nixpkgs>; revCount = 5678; shortRev = "gfedcba"; }
+, officialRelease ? false
 }:
 
 let
 
   version = builtins.readFile ./.version;
-  versionSuffix = "pre${toString nixosSrc.revCount}_${nixosSrc.shortRev}-${nixpkgs.shortRev}";
+  versionSuffix = "pre${toString nixosSrc.revCount}_${nixosSrc.shortRev}-${nixpkgsSrc.shortRev}";
+
+  systems = [ "x86_64-linux" "i686-linux" ];
+
+  pkgs = import <nixpkgs> { system = "x86_64-linux"; };
 
 
   makeIso =
-    { module, type, description ? type, maintainers ? ["eelco"] }:
-    { officialRelease ? false
-    , system ? builtins.currentSystem
-    }:
+    { module, type, description ? type, maintainers ? ["eelco"], system }:
 
-    with import <nixpkgs> {inherit system;};
+    with import <nixpkgs> { inherit system; };
 
     let
 
@@ -48,12 +49,10 @@ let
 
 
   makeSystemTarball =
-    { module, maintainers ? ["viric"]}:
-    { officialRelease ? false
-    , system ? builtins.currentSystem
-    }:
+    { module, maintainers ? ["viric"], system }:
+
+    with import <nixpkgs> { inherit system; };
 
-    with import <nixpkgs> {inherit system;};
     let
       versionModule = { system.nixosVersionSuffix = lib.optionalString (!officialRelease) versionSuffix; };
 
@@ -73,165 +72,161 @@ let
         };
 
 
-  jobs = rec {
-
-
-    tarball =
-      { officialRelease ? false }:
+in {
 
-      with import <nixpkgs> {};
-
-      releaseTools.makeSourceTarball {
-        name = "nixos-tarball";
-
-        src = nixosSrc;
-
-        inherit officialRelease version;
-        versionSuffix = lib.optionalString (!officialRelease) versionSuffix;
-
-        distPhase = ''
-          echo -n $VERSION_SUFFIX > .version-suffix
-          releaseName=nixos-$VERSION$VERSION_SUFFIX
-          ensureDir "$out/tarballs"
-          mkdir ../$releaseName
-          cp -prd . ../$releaseName
-          cd ..
-          chmod -R u+w $releaseName
-          tar cfvj $out/tarballs/$releaseName.tar.bz2 $releaseName
-        ''; # */
-      };
+  tarball =
+    pkgs.releaseTools.makeSourceTarball {
+      name = "nixos-tarball";
 
+      src = nixosSrc;
 
-    channel =
-      { officialRelease ? false }:
+      inherit officialRelease version;
+      versionSuffix = pkgs.lib.optionalString (!officialRelease) versionSuffix;
 
-      with import <nixpkgs> {};
-
-      releaseTools.makeSourceTarball {
-        name = "nixos-channel";
-
-        src = nixosSrc;
-
-        inherit officialRelease version;
-        versionSuffix = lib.optionalString (!officialRelease) versionSuffix;
+      distPhase = ''
+        echo -n $VERSION_SUFFIX > .version-suffix
+        releaseName=nixos-$VERSION$VERSION_SUFFIX
+        ensureDir "$out/tarballs"
+        mkdir ../$releaseName
+        cp -prd . ../$releaseName
+        cd ..
+        chmod -R u+w $releaseName
+        tar cfvj $out/tarballs/$releaseName.tar.bz2 $releaseName
+      ''; # */
+    };
 
-        buildInputs = [ nixUnstable ];
 
-        expr = builtins.readFile lib/channel-expr.nix;
+  channel =
+    pkgs.releaseTools.makeSourceTarball {
+      name = "nixos-channel";
 
-        distPhase = ''
-          echo -n $VERSION_SUFFIX > .version-suffix
-          releaseName=nixos-$VERSION$VERSION_SUFFIX
-          ensureDir "$out/tarballs"
-          mkdir ../$releaseName
-          cp -prd . ../$releaseName/nixos
-          cp -prd ${nixpkgs} ../$releaseName/nixpkgs
-          echo "$expr" > ../$releaseName/default.nix
-          NIX_STATE_DIR=$TMPDIR nix-env -f ../$releaseName/default.nix -qaP --meta --xml \* > /dev/null
-          cd ..
-          chmod -R u+w $releaseName
-          tar cfJ $out/tarballs/$releaseName.tar.xz $releaseName
-        ''; # */
-      };
+      src = nixosSrc;
 
+      inherit officialRelease version;
+      versionSuffix = pkgs.lib.optionalString (!officialRelease) versionSuffix;
 
-    manual =
-      { officialRelease ? false }:
+      buildInputs = [ pkgs.nixUnstable ];
 
-      (import "${nixosSrc}/doc/manual" {
-        pkgs = import <nixpkgs> {};
-        options =
-          (import lib/eval-config.nix {
-            modules = [
-              { fileSystems = [];
-                boot.loader.grub.device = "/dev/sda";
-              } ];
-          }).options;
-        revision = toString nixosSrc.rev;
-      }).manual;
+      expr = builtins.readFile lib/channel-expr.nix;
 
-
-    iso_minimal = makeIso {
-      module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
-      type = "minimal";
+      distPhase = ''
+        echo -n $VERSION_SUFFIX > .version-suffix
+        releaseName=nixos-$VERSION$VERSION_SUFFIX
+        ensureDir "$out/tarballs"
+        mkdir ../$releaseName
+        cp -prd . ../$releaseName/nixos
+        cp -prd ${nixpkgsSrc} ../$releaseName/nixpkgs
+        echo "$expr" > ../$releaseName/default.nix
+        NIX_STATE_DIR=$TMPDIR nix-env -f ../$releaseName/default.nix -qaP --meta --xml \* > /dev/null
+        cd ..
+        chmod -R u+w $releaseName
+        tar cfJ $out/tarballs/$releaseName.tar.xz $releaseName
+      ''; # */
     };
 
-    iso_graphical = makeIso {
-      module = ./modules/installer/cd-dvd/installation-cd-graphical.nix;
-      type = "graphical";
-    };
 
-    # A variant with a more recent (but possibly less stable) kernel
-    # that might support more hardware.
-    iso_new_kernel = makeIso {
-      module = ./modules/installer/cd-dvd/installation-cd-new-kernel.nix;
-      type = "new-kernel";
+  manual =
+    (import "${nixosSrc}/doc/manual" {
+      inherit pkgs;
+      options =
+        (import lib/eval-config.nix {
+          modules = [
+            { fileSystems = [];
+              boot.loader.grub.device = "/dev/sda";
+            } ];
+        }).options;
+      revision = toString (nixosSrc.rev or nixosSrc.shortRev);
+    }).manual;
+
+
+  iso_minimal = pkgs.lib.genAttrs systems (system: makeIso {
+    module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
+    type = "minimal";
+    inherit system;
+  });
+
+  iso_graphical = pkgs.lib.genAttrs systems (system: makeIso {
+    module = ./modules/installer/cd-dvd/installation-cd-graphical.nix;
+    type = "graphical";
+    inherit system;
+  });
+
+  # A variant with a more recent (but possibly less stable) kernel
+  # that might support more hardware.
+  iso_new_kernel = pkgs.lib.genAttrs systems (system: makeIso {
+    module = ./modules/installer/cd-dvd/installation-cd-new-kernel.nix;
+    type = "new-kernel";
+    inherit system;
+  });
+
+  # A variant with efi booting support. Once cd-minimal has a newer kernel,
+  # this should be enabled by default.
+  iso_efi = pkgs.lib.genAttrs systems (system: makeIso {
+    module = ./modules/installer/cd-dvd/installation-cd-efi.nix;
+    type = "efi";
+    maintainers = [ "shlevy" ];
+    inherit system;
+  });
+
+
+  # Provide a tarball that can be unpacked into an SD card, and easily
+  # boot that system from uboot (like for the sheevaplug).
+  # The pc variant helps preparing the expression for the system tarball
+  # in a machine faster than the sheevpalug
+  system_tarball_pc = pkgs.lib.genAttrs systems (system: makeSystemTarball {
+    module = ./modules/installer/cd-dvd/system-tarball-pc.nix;
+    inherit system;
+  });
+
+  /*
+  system_tarball_fuloong2f =
+    assert builtins.currentSystem == "mips64-linux";
+    makeSystemTarball {
+      module = ./modules/installer/cd-dvd/system-tarball-fuloong2f.nix;
+      system = "mips64-linux";
     };
 
-    # A variant with efi booting support. Once cd-minimal has a newer kernel,
-    # this should be enabled by default.
-    iso_efi = makeIso {
-      module = ./modules/installer/cd-dvd/installation-cd-efi.nix;
-      type = "efi";
-      maintainers = [ "shlevy" ];
+  system_tarball_sheevaplug =
+    assert builtins.currentSystem == "armv5tel-linux";
+    makeSystemTarball {
+      module = ./modules/installer/cd-dvd/system-tarball-sheevaplug.nix;
+      system = "armv5tel-linux";
     };
+  */
 
-    # Provide a tarball that can be unpacked into an SD card, and easily
-    # boot that system from uboot (like for the sheevaplug).
-    # The pc variant helps preparing the expression for the system tarball
-    # in a machine faster than the sheevpalug
-    system_tarball_pc = makeSystemTarball {
-      module = ./modules/installer/cd-dvd/system-tarball-pc.nix;
+
+  tests =
+    let
+      runTest = f: pkgs.lib.genAttrs systems (system:
+        f (import ./tests { inherit system; })
+      );
+    in {
+      avahi = runTest (t: t.avahi.test);
+      bittorrent = runTest (t: t.bittorrent.test);
+      firefox = runTest (t: t.firefox.test);
+      firewall = runTest (t: t.firewall.test);
+      installer.grub1 = runTest (t: t.installer.grub1.test);
+      installer.lvm = runTest (t: t.installer.lvm.test);
+      installer.rebuildCD = runTest (t: t.installer.rebuildCD.test);
+      installer.separateBoot = runTest (t: t.installer.separateBoot.test);
+      installer.simple = runTest (t: t.installer.simple.test);
+      installer.swraid = runTest (t: t.installer.swraid.test);
+      ipv6 = runTest (t: t.ipv6.test);
+      kde4 = runTest (t: t.kde4.test);
+      login = runTest (t: t.login.test);
+      misc = runTest (t: t.misc.test);
+      mpich = runTest (t: t.mpich.test);
+      mysql = runTest (t: t.mysql.test);
+      mysql_replication = runTest (t: t.mysql_replication.test);
+      nat = runTest (t: t.nat.test);
+      nfs = runTest (t: t.nfs.test);
+      openssh = runTest (t: t.openssh.test);
+      proxy = runTest (t: t.proxy.test);
+      quake3 = runTest (t: t.quake3.report);
+      #subversion = runTest (t: t.subversion.report);
+      tomcat = runTest (t: t.tomcat.test);
+      trac = runTest (t: t.trac.test);
+      xfce = runTest (t: t.xfce.test);
     };
 
-    /*
-    system_tarball_fuloong2f =
-      assert builtins.currentSystem == "mips64-linux";
-      makeSystemTarball {
-        module = ./modules/installer/cd-dvd/system-tarball-fuloong2f.nix;
-      } { system = "mips64-linux"; };
-
-    system_tarball_sheevaplug =
-      assert builtins.currentSystem == "armv5tel-linux";
-      makeSystemTarball {
-        module = ./modules/installer/cd-dvd/system-tarball-sheevaplug.nix;
-      } { system = "armv5tel-linux"; };
-    */
-
-
-    tests = { system ? "x86_64-linux" }:
-      let
-        t = import ./tests { inherit system; };
-      in {
-        avahi = t.avahi.test;
-        bittorrent = t.bittorrent.test;
-        firefox = t.firefox.test;
-        firewall = t.firewall.test;
-        installer.grub1 = t.installer.grub1.test;
-        installer.lvm = t.installer.lvm.test;
-        installer.rebuildCD = t.installer.rebuildCD.test;
-        installer.separateBoot = t.installer.separateBoot.test;
-        installer.simple = t.installer.simple.test;
-        installer.swraid = t.installer.swraid.test;
-        ipv6 = t.ipv6.test;
-        kde4 = t.kde4.test;
-        login = t.login.test;
-        misc = t.misc.test;
-        mpich = t.mpich.test;
-        mysql = t.mysql.test;
-        mysql_replication = t.mysql_replication.test;
-        nat = t.nat.test;
-        nfs = t.nfs.test;
-        openssh = t.openssh.test;
-        proxy = t.proxy.test;
-        quake3 = t.quake3.report;
-        #subversion = t.subversion.report;
-        tomcat = t.tomcat.test;
-        trac = t.trac.test;
-        xfce = t.xfce.test;
-      };
-
-  };
-
-
-in jobs
+}