nixpkgs/pkgs/build-support/release/default.nix
Eelco Dolstra b38647766d releaseTools: Add ‘aggregate’ function
An aggregate is a trivial build that depends on other builds.  This is
intended to provide a declarative replacement of Hydra's "view"
mechanism.

For instance, you can define an aggregate named "critical" that
depends on a selected set of jobs:

  critical = releaseTools.aggregate
    { name = "foo-${tarball.version}";
      members =
        [ tarball
          build.x86_64-linux
          ...
        ];
      meta.description = "Release-critical builds";
    };

The "critical" build will only succeed if all its members
(dependencies) succeed.
2013-03-26 11:58:59 +01:00

53 lines
1 KiB
Nix

{pkgs}:
with pkgs;
rec {
sourceTarball = args: import ./source-tarball.nix (
{ inherit stdenv autoconf automake libtool;
} // args);
makeSourceTarball = sourceTarball; # compatibility
binaryTarball = args: import ./binary-tarball.nix (
{ inherit stdenv;
} // args);
antBuild = args: import ./ant-build.nix (
{ inherit pkgs;
} // args);
mvnBuild = args: import ./maven-build.nix (
{ inherit stdenv;
} // args);
nixBuild = args: import ./nix-build.nix (
{ inherit stdenv;
} // args);
coverageAnalysis = args: nixBuild (
{ inherit lcov;
doCoverageAnalysis = true;
} // args);
rpmBuild = args: import ./rpm-build.nix (
{ inherit vmTools;
} // args);
debBuild = args: import ./debian-build.nix (
{ inherit stdenv vmTools checkinstall;
} // args);
aggregate =
{ name, members, meta ? { } }:
pkgs.runCommand name
{ inherit members meta;
_hydraAggregate = true;
}
''
echo $members > $out
'';
}