Merge pull request #1126 from DeterminateSystems/build-localhost-paths

build-remote: copy missing paths from the binary cache to localhost
This commit is contained in:
Graham Christensen
2022-01-21 16:16:33 -05:00
committed by GitHub
7 changed files with 101 additions and 3 deletions

View File

@ -37,6 +37,8 @@ sub evalSucceeds {
$jobset->discard_changes; # refresh from DB
if ($res) {
chomp $stdout; chomp $stderr;
utf8::decode($stdout) or die "Invalid unicode in stdout.";
utf8::decode($stderr) or die "Invalid unicode in stderr.";
print STDERR "Evaluation unexpectedly failed for jobset ".$jobset->project->name.":".$jobset->name.": \n".$jobset->errormsg."\n" if $jobset->errormsg;
print STDERR "STDOUT: $stdout\n" if $stdout ne "";
print STDERR "STDERR: $stderr\n" if $stderr ne "";
@ -50,6 +52,8 @@ sub evalFails {
$jobset->discard_changes; # refresh from DB
if (!$res) {
chomp $stdout; chomp $stderr;
utf8::decode($stdout) or die "Invalid unicode in stdout.";
utf8::decode($stderr) or die "Invalid unicode in stderr.";
print STDERR "Evaluation unexpectedly succeeded for jobset ".$jobset->project->name.":".$jobset->name.": \n".$jobset->errormsg."\n" if $jobset->errormsg;
print STDERR "STDOUT: $stdout\n" if $stdout ne "";
print STDERR "STDERR: $stderr\n" if $stderr ne "";
@ -61,6 +65,8 @@ sub runBuild {
my ($build) = @_;
my ($res, $stdout, $stderr) = captureStdoutStderr(60, ("hydra-queue-runner", "-vvvv", "--build-one", $build->id));
if ($res) {
utf8::decode($stdout) or die "Invalid unicode in stdout.";
utf8::decode($stderr) or die "Invalid unicode in stderr.";
print STDERR "Queue runner stdout: $stdout\n" if $stdout ne "";
print STDERR "Queue runner stderr: $stderr\n" if $stderr ne "";
}
@ -70,6 +76,8 @@ sub runBuild {
sub sendNotifications() {
my ($res, $stdout, $stderr) = captureStdoutStderr(60, ("hydra-notify", "--queued-only"));
if ($res) {
utf8::decode($stdout) or die "Invalid unicode in stdout.";
utf8::decode($stderr) or die "Invalid unicode in stderr.";
print STDERR "hydra notify stdout: $stdout\n" if $stdout ne "";
print STDERR "hydra notify stderr: $stderr\n" if $stderr ne "";
}

View File

@ -69,6 +69,7 @@ sub new {
_db => undef,
db_handle => $pgsql,
tmpdir => $dir,
nix_state_dir => "$dir/nix/var/nix",
testdir => abs_path(dirname(__FILE__) . "/.."),
jobsdir => abs_path(dirname(__FILE__) . "/../jobs")
};
@ -115,6 +116,12 @@ sub jobsdir {
return $self->{jobsdir};
}
sub nix_state_dir {
my ($self) = @_;
return $self->{nix_state_dir};
}
# Create a jobset, evaluate it, and optionally build the jobs.
#
# In return, you get a hash of all the Builds records, keyed