diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index fba8429c9c7..5fe87711c01 100644 --- a/pkgs/top-level/release-lib.nix +++ b/pkgs/top-level/release-lib.nix @@ -46,21 +46,22 @@ rec { interested in the result of cross building a package. */ crossMaintainers = [ maintainers.viric ]; + forAllSupportedSystems = systems: f: + genAttrs (filter (x: elem x supportedSystems) systems) f; /* Build a package on the given set of platforms. The function `f' is called for each supported platform with Nixpkgs for that platform as an argument . We return an attribute set containing a derivation for each supported platform, i.e. ‘{ x86_64-linux = f pkgs_x86_64_linux; i686-linux = f pkgs_i686_linux; ... }’. */ - testOn = systems: f: genAttrs - (filter (x: elem x supportedSystems) systems) (system: hydraJob' (f (pkgsFor system))); + testOn = systems: f: forAllSupportedSystems systems + (system: hydraJob' (f (pkgsFor system))); /* Similar to the testOn function, but with an additional 'crossSystem' parameter for allPackages, defining the target platform for cross builds. */ - testOnCross = crossSystem: systems: f: genAttrs - (filter (x: elem x supportedSystems) systems) + testOnCross = crossSystem: systems: f: forAllSupportedSystems systems (system: hydraJob' (f (allPackages { inherit system crossSystem; })));