* Read logs using logContents function in stead of handling it everywhere separately.

[?]
Jun 26, 2012, 10:00 AM
RBHHV7P7MMFXUNWCJFNYKLGVLG2NQEDUKJ2IUCZ3WFMHH3SZRUHQC

Dependencies

  • [2] 64K7R4Y6 Forgot to change Nix to Nix::Store in one place
  • [3] GJFYEU3S * Nix now stores logs by default as bzip2, make sure the build page uncompresses before showing.
  • [4] CXRCPDSQ * added support for twitter notification
  • [5] 6M4KNDXX * Catalyst::View::Download::Plain doesn't like empty files.
  • [6] KA45EBF5 * Send email if a build fails.
  • [7] EUWLW7FY Don't use the Switch module
  • [8] OG7BEM57
  • [9] LZO3C2KI * Hack around those SQLite timeouts: just retry the transaction.
  • [10] G5A7TZVI * Don't discard old build steps when restarting a build.
  • [11] ALXRI3Y5 hydra: removed need for HYDRA_BUILD_BASEURL env variable
  • [12] 6US6LEC7 * Add a NarSize field to Hydra manifests. This allows nix-env
  • [13] 7YBYT2LQ
  • [14] NZI7E2E3 * hydra: handle case where logfile is empty
  • [15] MOX7XJ2E Merge the BuildSchedulingInfo table into the Builds table
  • [16] LQNBKF3D
  • [17] AS5PAYLI
  • [18] HB3OHPJL hydra: in case of cached build, add link to build that built the storepath
  • [19] LBNVQXUB * Build the /build stuff in a separate controller.
  • [20] GAIBDEZZ * Store the name of the machine that performed a build step in the
  • [21] LA27PR4U hydra: fix enable email notification bug
  • [22] Q24QXGSM * Don't do pretty printing for large logs, because the XSLT processing
  • [23] SAIUFDP3 hydra: make sure viewing logs works when logs are bz2'd
  • [24] LOMVF2KH do not send email for builds with status 'aborted'
  • [25] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [26] U6UJRDG2 * Oops.
  • [27] VPKMUFF3 hydra-build: only send email if the status differs from the previous build
  • [28] OD5FSS5A * Quick hack to allow viewing of dependency graphs (via nix-store -q
  • [29] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [30] FHAVPTZ6 Hydra/23: added some X-headers with meta info in email notifications, added more descriptive status
  • [31] T7Z63K6T hydra: moves jobsetOverview sub
  • [32] HPEG2RHV Merge the BuildResultInfo table into the Builds table
  • [33] QUTWJR7P * Include more info in notification emails.
  • [34] WAZFSDSL using backquote as argument resulted in only first line as first argument to removeAsciiEscapes
  • [35] FCBQMIF3 hydra-build: Do not send email following an abortion.
  • [36] KSD75RNJ Hydra/18: fixed uninitialized value error when logfile is null
  • [37] L2E6EVE2 * Merged the Build and Job tables.
  • [38] 5O6E5SU5 hydra: store logfile/output path/closure size
  • [39] BEKA3TMM Hydra/25: At job pages, show the hash of the output
  • [40] MMDLWWZ2 automatic reload of tail log when build is running
  • [41] G3IUM7VL hydra: add support for succeedOnFailure feature in stdenv
  • [42] D7NXMCON * Doh.
  • [43] 3BKF6P72 * Use Nix's negative caching.
  • [44] IW2LHCLL fixed email bug
  • [45] A52HEFHQ * Allow builds to be restarted (if they failed with a transient error,
  • [46] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [47] QE253KG4 * Option to show the tail of a log.
  • [48] UVNQPK3T Hydra/56: handle failed builds with result only at build level, not buildsteps
  • [49] NP6QUCL7 * Fix indentation.
  • [50] MPGVCHVF * Fix an apparent incompatibility with recent DBIx::Class.
  • [51] 6F4UNDTC * Provide access to the raw, non-pretty-printed logfiles.
  • [52] A22P7HCO hydra: at evaluation, check if path is already built, and mark as built in stead of adding to the queue.
  • [53] CMU3YKOU * Store the release name.
  • [54] BOFOHCPK removed debug print, added last 50 lines in failure emails
  • [55] ZILILXXK * Allow scheduled builds to be cancelled. They're not removed from
  • [56] FYO6NECE hydra
  • [57] CLJQCY2X * Store info about all the build actions and allow them to be
  • [58] PY4WQF5G remove ascii escapes from log in tail page and emails
  • [*] 2GK5DOU7 * Downloading closures.
  • [*] AFTXA575 * $HYDRA_DATA environment variable.

Change contents

  • edit in src/lib/Hydra/Controller/Build.pm at line 50
    [4.942][3.122:141]()
    my $pipestart;
  • replacement in src/lib/Hydra/Controller/Build.pm at line 52
    [4.1073][3.142:270]()
    $pipestart = cat_log_command($logfile);
    $c->stash->{logtext} = `$pipestart` if defined $logfile && -e $logfile;
    [4.1073]
    [4.0]
    $c->stash->{logtext} = logContents($logfile);
  • replacement in src/lib/Hydra/Controller/Build.pm at line 63
    [4.3149][3.273:360]()
    $pipestart = cat_log_command($path);
    my $logtext = `$pipestart | tail -n 50`;
    [4.3149]
    [4.35]
    my $logtext = logContents($path, 50);
  • edit in src/lib/Hydra/Controller/Build.pm at line 125
    [4.162][4.162:163](),[4.163][3.406:486]()
    my $pipestart = ($path =~ /.bz2$/ ? "cat $path | bzip2 -d" : "cat $path") ;
  • edit in src/lib/Hydra/Controller/Build.pm at line 128
    [4.384]
    [4.245]
    my $pipestart = ($path =~ /.bz2$/ ? "cat $path | bzip2 -d" : "cat $path") ;
  • replacement in src/lib/Hydra/Controller/Build.pm at line 138
    [4.759][4.280:353]()
    $c->stash->{'plain'} = { data => (scalar `$pipestart`) || " " };
    [4.759]
    [4.353]
    $c->stash->{'plain'} = { data => (scalar logContents($path)) || " " };
  • replacement in src/lib/Hydra/Controller/Build.pm at line 148
    [4.307][4.307:382]()
    $c->stash->{contents} = (scalar `$pipestart | tail -n 50`) || " ";
    [4.307]
    [4.382]
    $c->stash->{contents} = (scalar logContents($path, 50)) || " ";
  • replacement in src/lib/Hydra/Controller/Build.pm at line 153
    [4.49][4.397:483]()
    $c->stash->{'plain'} = { data => (scalar `$pipestart | tail -n 50`) || " " };
    [4.49]
    [4.119]
    $c->stash->{'plain'} = { data => (scalar logContents($path, 50)) || " " };
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 167
    [4.148][4.148:172]()
    , "+select" =>
    [4.148]
    [4.3312]
    , "+select" =>
  • edit in src/lib/Hydra/Helper/Nix.pm at line 239
    [4.5600]
    [61.849]
    sub logContents {
    my ($path, $tail) = @_;
    my $cmd;
    if ($path =~ /.bz2$/) {
    $cmd = "cat $path | bzip2 -d";
    $cmd = $cmd . " | tail -$tail" if defined $tail;
    }
    else {
    $cmd = defined $tail ? "tail -$tail $path" : "cat $path";
    }
    return `$cmd` if -e $path;
    }
  • replacement in src/script/hydra-build at line 40
    [4.462][4.9645:9718]()
    my $duration = ($build->stoptime - $build->starttime) . " seconds";
    [4.462]
    [4.47]
    my $duration = ($build->stoptime - $build->starttime) . " seconds";
  • replacement in src/script/hydra-build at line 50
    [4.787][4.787:852]()
    my $msg = "$jobName ($system): $status in $duration #$tag";
    [4.787]
    [4.852]
    my $msg = "$jobName ($system): $status in $duration #$tag";
  • replacement in src/script/hydra-build at line 54
    [4.935][4.935:940]()
    [4.935]
    [4.940]
  • replacement in src/script/hydra-build at line 71
    [4.336][4.336:341]()
    [4.336]
    [4.341]
  • replacement in src/script/hydra-build at line 79
    [4.9752][4.70:79](),[4.70][4.70:79]()
    [4.9752]
    [4.1263]
  • replacement in src/script/hydra-build at line 89
    [4.3975][4.3975:4011]()
    , system => $build->system
    [4.3975]
    [4.4011]
    , system => $build->system
  • replacement in src/script/hydra-build at line 97
    [4.9835][4.77:94](),[4.4231][4.77:94]()
    return;
    [4.9835]
    [4.94]
    return;
  • replacement in src/script/hydra-build at line 103
    [4.209][4.4231:4248](),[4.214][4.4231:4248](),[4.9930][4.4231:4248](),[4.4231][4.4231:4248]()
    return;
    [4.9930]
    [4.324]
    return;
  • replacement in src/script/hydra-build at line 160
    [4.24][4.10204:10239](),[4.10239][4.97:205](),[4.71][4.97:205]()
    my $logfile = $build->logfile;
    my $logtext = defined $logfile && -e $logfile ? `tail -$loglines $logfile` : "No logfile available.\n";
    [4.24]
    [4.205]
    my $logtext = logContents($build->logfile, $loglines);
  • replacement in src/script/hydra-build at line 183
    [4.327][4.10547:10611]()
    . ($build->buildstatus != 0 ? "\n---\n$logtext" : "");
    [4.327]
    [4.403]
    . ($build->buildstatus != 0 ? "\n---\n$logtext" : "");
  • replacement in src/script/hydra-build at line 235
    [4.3689][4.3689:3698]()
    [4.3689]
    [4.4831]
  • replacement in src/script/hydra-build at line 251
    [4.168][4.5170:5179](),[4.5170][4.5170:5179]()
    [4.168]
    [4.5179]
  • replacement in src/script/hydra-build at line 256
    [4.3728][4.3728:3741]()
    [4.3728]
    [4.5239]
  • replacement in src/script/hydra-build at line 261
    [4.5376][4.5376:5389]()
    [4.5341]
    [4.5389]
  • replacement in src/script/hydra-build at line 277
    [4.5912][4.5912:5925]()
    [4.5912]
    [4.809]
  • replacement in src/script/hydra-build at line 286
    [4.1148][4.1148:1161]()
    [4.1148]
    [4.423]
  • replacement in src/script/hydra-build at line 293
    [4.443][4.443:445]()
    [4.443]
    [4.756]
  • replacement in src/script/hydra-build at line 362
    [4.6917][4.6917:6926]()
    [4.6917]
    [4.6926]
  • replacement in src/script/hydra-build at line 380
    [4.4981][4.1367:1409]()
    my $logfile = getBuildLog($drvPath);
    [4.4981]
    [4.4020]
    my $logfile = getBuildLog($drvPath);
  • replacement in src/script/hydra-build at line 394
    [2.229][4.700:736](),[4.700][4.700:736]()
    $closuresize += $narSize;
    [2.229]
    [4.736]
    $closuresize += $narSize;
  • replacement in src/script/hydra-build at line 400
    [4.1435][4.4463:4472](),[4.1911][4.4463:4472](),[4.4463][4.4463:4472]()
    [4.1435]
    [4.10612]