From f235cc2884e282cf1cfb49d9b2ce1f493c850c50 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 26 Mar 2013 14:00:31 +0100 Subject: [PATCH] Add an aggregated to replace the "tested" NixOS view Also get rid of the "system" jobset input. --- release-combined.nix | 56 ++++++-- release.nix | 323 +++++++++++++++++++++---------------------- 2 files changed, 206 insertions(+), 173 deletions(-) diff --git a/release-combined.nix b/release-combined.nix index 004dd1b250a9..b26a2184ddb2 100644 --- a/release-combined.nix +++ b/release-combined.nix @@ -1,11 +1,49 @@ -{ nixpkgs, officialRelease }: +{ nixosSrc ? { outPath = ./.; revCount = 1234; shortRev = "abcdefg"; } +, nixpkgsSrc ? { outPath = ; revCount = 5678; shortRev = "gfedcba"; } +, officialRelease ? false +}: + +rec { + + nixos = import ./release.nix { + inherit nixosSrc nixpkgsSrc officialRelease; + }; + + nixpkgs = import { + inherit officialRelease; + nixpkgs = nixpkgsSrc; + # Only do Linux builds. + supportedSystems = [ "x86_64-linux" "i686-linux" ]; + }; + + tested = (import { }).releaseTools.aggregate { + name = "nixos-${nixos.tarball.version}"; + meta.description = "Release-critical builds for the NixOS unstable channel"; + members = + [ nixos.channel + nixos.manual + + nixos.iso_minimal.x86_64-linux + nixos.iso_minimal.i686-linux + nixos.iso_graphical.x86_64-linux + nixos.iso_graphical.i686-linux + + nixos.tests.firefox.x86_64-linux + nixos.tests.firewall.x86_64-linux + nixos.tests.installer.lvm.x86_64-linux + nixos.tests.installer.separateBoot.x86_64-linux + nixos.tests.installer.simple.i686-linux + nixos.tests.installer.simple.x86_64-linux + nixos.tests.kde4.i686-linux + nixos.tests.login.i686-linux + nixos.tests.login.x86_64-linux + nixos.tests.misc.i686-linux + nixos.tests.misc.x86_64-linux + + nixpkgs.tarball + nixpkgs.emacs.i686-linux + nixpkgs.emacs.x86_64-linux + ]; + }; -{ - nixos = import ./release.nix; - nixpkgs = - import { - inherit nixpkgs officialRelease; - # Only do Linux builds. - supportedSystems = [ "x86_64-linux" "i686-linux" ]; - }; } diff --git a/release.nix b/release.nix index 8c8851af51eb..c8f144b74b25 100644 --- a/release.nix +++ b/release.nix @@ -1,21 +1,22 @@ -{ nixosSrc ? {outPath = ./.; revCount = 1234; shortRev = "abcdefg"; } -, nixpkgs ? {outPath = ; revCount = 5678; shortRev = "gfedcba"; } -#, minimal ? false +{ nixosSrc ? { outPath = ./.; revCount = 1234; shortRev = "abcdefg"; } +, nixpkgsSrc ? { outPath = ; 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 { 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 {inherit system;}; + with import { inherit system; }; let @@ -48,12 +49,10 @@ let makeSystemTarball = - { module, maintainers ? ["viric"]}: - { officialRelease ? false - , system ? builtins.currentSystem - }: + { module, maintainers ? ["viric"], system }: + + with import { inherit system; }; - with import {inherit system;}; let versionModule = { system.nixosVersionSuffix = lib.optionalString (!officialRelease) versionSuffix; }; @@ -73,165 +72,161 @@ let }; - jobs = rec { +in { + tarball = + pkgs.releaseTools.makeSourceTarball { + name = "nixos-tarball"; - tarball = - { officialRelease ? false }: + src = nixosSrc; - with import {}; + inherit officialRelease version; + versionSuffix = pkgs.lib.optionalString (!officialRelease) versionSuffix; - 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 - ''; # */ - }; - - - channel = - { officialRelease ? false }: - - with import {}; - - releaseTools.makeSourceTarball { - name = "nixos-channel"; - - src = nixosSrc; - - inherit officialRelease version; - versionSuffix = lib.optionalString (!officialRelease) versionSuffix; - - buildInputs = [ nixUnstable ]; - - expr = builtins.readFile lib/channel-expr.nix; - - 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 - ''; # */ - }; - - - manual = - { officialRelease ? false }: - - (import "${nixosSrc}/doc/manual" { - pkgs = import {}; - options = - (import lib/eval-config.nix { - modules = [ - { fileSystems = []; - boot.loader.grub.device = "/dev/sda"; - } ]; - }).options; - revision = toString nixosSrc.rev; - }).manual; - - - 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 + cd .. + chmod -R u+w $releaseName + tar cfvj $out/tarballs/$releaseName.tar.bz2 $releaseName + ''; # */ }; - iso_graphical = makeIso { - module = ./modules/installer/cd-dvd/installation-cd-graphical.nix; - type = "graphical"; + + channel = + pkgs.releaseTools.makeSourceTarball { + name = "nixos-channel"; + + src = nixosSrc; + + inherit officialRelease version; + versionSuffix = pkgs.lib.optionalString (!officialRelease) versionSuffix; + + buildInputs = [ pkgs.nixUnstable ]; + + expr = builtins.readFile lib/channel-expr.nix; + + 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 + ''; # */ }; - # 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"; + }; + */ + + + 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); }; - # 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; - }; - - /* - 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 +}