* Nix expression for building Hydra.
This commit is contained in:
parent
28526dfaf8
commit
3ec88541b2
76
release.nix
Normal file
76
release.nix
Normal 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
2
src/Hydra/script/hydra_build.pl
Normal file → Executable 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
4
src/Hydra/script/hydra_queue_runner.pl
Normal file → Executable 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
2
src/Hydra/script/hydra_scheduler.pl
Normal file → Executable file
|
@ -1,4 +1,4 @@
|
|||
#! @perl@ -w
|
||||
#! /var/run/current-system/sw/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use XML::Simple;
|
||||
|
|
Loading…
Reference in a new issue