* Build RPMs, Debs, coverage analysis.

This commit is contained in:
Eelco Dolstra 2008-12-04 15:25:28 +00:00
parent 909fbb9de1
commit 9850262a72

View file

@ -1,57 +1,125 @@
let jobs = rec { let
jobs = rec {
tarball = tarball =
{ nix ? {path = ./.; rev = 1234;} { nix ? {path = ./.; rev = 1234;}
, nixpkgs ? {path = ../nixpkgs;} , nixpkgs ? {path = ../nixpkgs;}
, officialRelease ? false , officialRelease ? false
}: }:
with import nixpkgs.path {}; with import nixpkgs.path {};
releaseTools.makeSourceTarball { releaseTools.makeSourceTarball {
name = "nix-tarball"; name = "nix-tarball";
src = nix; src = nix;
inherit officialRelease; inherit officialRelease;
buildInputs = [curl bison flex2533 perl libxml2 libxslt w3m bzip2 jing_tools]; buildInputs = [curl bison flex2533 perl libxml2 libxslt w3m bzip2 jing_tools];
configureFlags = '' configureFlags = ''
--with-docbook-rng=${docbook5}/xml/rng/docbook --with-docbook-rng=${docbook5}/xml/rng/docbook
--with-docbook-xsl=${docbook5_xsl}/xml/xsl/docbook --with-docbook-xsl=${docbook5_xsl}/xml/xsl/docbook
--with-xml-flags=--nonet --with-xml-flags=--nonet
''; '';
# Include the BDB, ATerm and Bzip2 tarballs in the distribution. # Include the BDB, ATerm and Bzip2 tarballs in the distribution.
preConfigure = '' preConfigure = ''
stripHash ${db45.src} stripHash ${db45.src}
# Remove unnecessary stuff from the Berkeley DB tarball. # Remove unnecessary stuff from the Berkeley DB tarball.
( mkdir bdb-temp ( mkdir bdb-temp
cd bdb-temp cd bdb-temp
tar xfz ${db45.src} tar xfz ${db45.src}
cd * cd *
rm -rf docs test tcl perl libdb_java java rpc_server build_vxworks \ rm -rf docs test tcl perl libdb_java java rpc_server build_vxworks \
examples_java examples_c examples_cxx dist/tags examples_java examples_c examples_cxx dist/tags
mkdir test mkdir test
touch test/include.tcl touch test/include.tcl
cd .. cd ..
tar cvfz ../externals/$strippedName * tar cvfz ../externals/$strippedName *
) )
stripHash ${aterm242fixes.src} stripHash ${aterm242fixes.src}
cp -pv ${aterm242fixes.src} externals/$strippedName cp -pv ${aterm242fixes.src} externals/$strippedName
stripHash ${bzip2.src} stripHash ${bzip2.src}
cp -pv ${bzip2.src} externals/$strippedName cp -pv ${bzip2.src} externals/$strippedName
''; '';
}; };
build = build =
{ tarball ? {path = jobs.tarball {};} { tarball ? {path = jobs.tarball {};}
, nixpkgs ? {path = ../nixpkgs;} , nixpkgs ? {path = ../nixpkgs;}
, system ? "i686-linux" , system ? "i686-linux"
}: }:
with import nixpkgs.path {inherit system;};
releaseTools.nixBuild {
name = "nix-build";
src = tarball;
buildInputs = [curl perl bzip2 openssl];
configureFlags = ''
--disable-init-state
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
'';
postInstall = ''
echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products
echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products
'';
};
coverage =
{ tarball ? {path = jobs.tarball {};}
, nixpkgs ? {path = ../nixpkgs;}
}:
with import nixpkgs.path {};
releaseTools.coverageAnalysis {
name = "nix-build";
src = tarball;
buildInputs = [
curl perl bzip2 openssl
# These are for "make check" only:
graphviz libxml2 libxslt
];
configureFlags = ''
--disable-init-state --disable-shared
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
'';
lcovFilter = ["*/boost/*" "*-tab.*"];
# We call `dot', and even though we just use it to
# syntax-check generated dot files, it still requires some
# fonts. So provide those.
FONTCONFIG_FILE = texFunctions.fontsConf;
};
rpm_fedora9i386 = makeRPM (diskImages: diskImages.fedora9i386) 50;
rpm_fedora10i386 = makeRPM (diskImages: diskImages.fedora10i386) 40;
rpm_opensuse103i386 = makeRPM (diskImages: diskImages.opensuse103i386) 40;
deb_debian40i386 = makeDeb (diskImages: diskImages.debian40i386) 30;
deb_ubuntu804i386 = makeDeb (diskImages: diskImages.ubuntu804i386) 40;
};
doBuild =
{ tarball, nixpkgs, system, coverageAnalysis }:
with import nixpkgs.path {inherit system;}; with import nixpkgs.path {inherit system;};
@ -66,11 +134,47 @@ let jobs = rec {
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2} --with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
''; '';
postInstall = '' postInstall = if coverageAnalysis then "" else ''
echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products
echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products
''; '';
inherit coverageAnalysis;
}; };
}; in jobs makeRPM =
diskImageFun: prio:
{ tarball ? {path = jobs.tarball {};}
, nixpkgs ? {path = ../nixpkgs;}
}:
with import nixpkgs.path {};
releaseTools.rpmBuild rec {
name = "nix-rpm-${diskImage.name}";
src = tarball;
diskImage = diskImageFun vmTools.diskImages;
memSize = 1024;
meta = { schedulingPriority = toString prio; };
};
makeDeb =
diskImageFun: prio:
{ tarball ? {path = jobs.tarball {};}
, nixpkgs ? {path = ../nixpkgs;}
}:
with import nixpkgs.path {};
releaseTools.debBuild {
name = "nix-deb";
src = tarball;
diskImage = diskImageFun vmTools.diskImages;
memSize = 1024;
meta = { schedulingPriority = toString prio; };
};
in jobs