* Nix expression for building Hydra.

This commit is contained in:
Eelco Dolstra 2008-11-28 16:13:06 +00:00
parent 28526dfaf8
commit 3ec88541b2
4 changed files with 80 additions and 4 deletions

76
release.nix Normal file
View file

@ -0,0 +1,76 @@
let
jobs = rec {
tarball =
{ hydraSrc ? {path = ./.; rev = 1234;}
, nixpkgs ? {path = ../nixpkgs;}
, officialRelease ? false
}:
with import nixpkgs.path {};
releaseTools.makeSourceTarball {
name = "hydra-tarball";
src = hydraSrc;
inherit officialRelease;
# Since we don't have a `make dist', just tar everything.
distPhase = ''
releaseName=hydra-0.1$VERSION_SUFFIX;
ensureDir $out/tarballs
mkdir ../$releaseName
cp -prd . ../$releaseName
cd ..
tar cfj $out/tarballs/$releaseName.tar.bz2 $releaseName
tar cfz $out/tarballs/$releaseName.tar.gz $releaseName
'';
};
build =
{ tarball ? {path = jobs.tarball {};}
, nixpkgs ? {path = ../nixpkgs;}
, system ? "i686-linux"
}:
with import nixpkgs.path {inherit system;};
stdenvNew.mkDerivation {
name = "hydra-build";
buildInputs = [
perl makeWrapper
perlCatalystDevel
perlCatalystPluginAuthenticationStoreDBIC
perlCatalystPluginSessionStoreFastMmap
perlCatalystPluginStackTrace
perlCatalystPluginAuthenticationStoreDBIxClass
perlCatalystViewTT
];
preUnpack = ''
src=$(ls ${tarball.path}/tarballs/*.tar.bz2)
''; # */
installPhase = ''
ensureDir $out/libexec
cp -prd src/Hydra $out/libexec/hydra
mv $out/libexec/hydra/script $out/bin
for i in $out/bin/*; do
wrapProgram $i \
--prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \
--prefix PATH ':' $out/bin \
--set HYDRA_HOME $out/libexec/hydra
done
''; # */
};
};
in jobs

2
src/Hydra/script/hydra_build.pl Normal file → Executable file
View file

@ -1,4 +1,4 @@
#! @perl@ -w
#! /var/run/current-system/sw/bin/perl -w
use strict;
use File::Basename;

4
src/Hydra/script/hydra_queue_runner.pl Normal file → Executable file
View file

@ -1,4 +1,4 @@
#! @perl@ -w
#! /var/run/current-system/sw/bin/perl -w
use strict;
use Cwd;
@ -100,7 +100,7 @@ sub checkBuilds {
open LOG, ">$logfile" or die "cannot create logfile $logfile";
POSIX::dup2(fileno(LOG), 1) or die;
POSIX::dup2(fileno(LOG), 2) or die;
exec("perl", "-I$hydraHome/lib", "-w", "$ENV{'HYDRA_HOME'}/programs/Build.pl", $id);
exec("hydra_build.pl", $id);
};
warn "cannot start build $id: $@";
POSIX::_exit(1);

2
src/Hydra/script/hydra_scheduler.pl Normal file → Executable file
View file

@ -1,4 +1,4 @@
#! @perl@ -w
#! /var/run/current-system/sw/bin/perl -w
use strict;
use XML::Simple;