* for git inputs, check latest revision of branch (defaults to master for now), if there is change, only use input if last checkout was > hour ago.

[?]
Nov 19, 2009, 8:15 AM
BK24VA6QHPE6XLXUXPLJMOT75WEXHZ6PPOFLYFUP4U4NYS5FVGWAC

Dependencies

  • [2] JJT5QG3K remove revision from cached cvs inputs, and added missing files
  • [3] VN2SV3G2 Ask `nix-prefetch-git' to leave `.git' in the output.
  • [4] ZVTSOVHN * Support Subversion checkouts.
  • [5] JTRG7RDQ add support for git as jobinput
  • [6] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [7] NJBETZ2C Use $NIX_PREFETCH_GIT_CHECKOUT_HOOK to produce a `.git-version' file.
  • [*] N22GPKYT * Put info about logs / build products in the DB.

Change contents

  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 225
    [4.515]
    [4.515]
    my $branch = "master";
    # First figure out the last-modified revision of the URI.
    my $stdout; my $stderr;
    (my $res, $stdout, $stderr) = captureStdoutStderr(
    "git", "ls-remote", $uri, $branch);
    die "Cannot get head revision of Git branch '$branch' at `$uri':\n$stderr" unless $res;
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 234
    [4.516][4.516:759]()
    # Some simple caching: don't check a path more than once every N seconds.
    (my $cachedInput) = $db->resultset('CachedGitInputs')->search(
    {uri => $uri, lastseen => {">", $timestamp - 3600}},
    {rows => 1, order_by => "lastseen DESC"});
    [4.516]
    [4.759]
    (my $revision, my $ref) = split ' ', $stdout;
    die unless $revision =~ /^[0-9a-fA-F]+$/;
    # Some simple caching: don't check a uri/branch more than once every hour, but prefer exact match on uri/branch/revision.
    my $cachedInput ;
    ($cachedInput) = $db->resultset('CachedGitInputs')->search(
    {uri => $uri, branch => $branch, revision => $revision},
    {rows => 1});
    if (! defined $cachedInput ) {
    ($cachedInput) = $db->resultset('CachedGitInputs')->search(
    {uri => $uri, branch => $branch, lastseen => {">", $timestamp - 3600}},
    {rows => 1, order_by => "lastseen DESC"});
    }
  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 252
    [4.947]
    [4.947]
    $revision = $cachedInput->revision;
  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 265
    [4.73][4.1120:1152](),[3.210][4.1120:1152](),[4.1120][4.1120:1152]()
    my $stdout; my $stderr;
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 266
    [4.1204][4.1204:1305]()
    "nix-prefetch-git", $uri);
    die "Cannot check out Git repository `$uri':\n$stderr" unless $res;
    [4.1204]
    [4.1305]
    "nix-prefetch-git", $uri, $revision);
    die "Cannot check out Git repository branch '$branch' at `$uri':\n$stderr" unless $res;
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 271
    [4.1412][4.1412:1456]()
    {uri => $uri, sha256hash => $sha256});
    [4.1412]
    [4.1456]
    {uri => $uri, branch => $branch, sha256hash => $sha256});
  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 277
    [4.1575]
    [4.1575]
    , branch => $branch
    , revision => $revision
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 298
    [4.2042][4.2042:2107]()
    , revision => strftime "%Y%m%d%H%M%S", gmtime($timestamp)
    [4.2042]
    [4.2107]
    , revision => $revision
  • edit in src/lib/Hydra/Schema/CachedGitInputs.pm at line 15
    [2.1632]
    [2.1632]
    {
    data_type => "text",
    default_value => undef,
    is_nullable => 0,
    size => undef,
    },
    "branch",
    {
    data_type => "text",
    default_value => undef,
    is_nullable => 0,
    size => undef,
    },
    "revision",
  • replacement in src/lib/Hydra/Schema/CachedGitInputs.pm at line 64
    [2.2216][2.2216:2267]()
    __PACKAGE__->set_primary_key("uri", "sha256hash");
    [2.2216]
    [2.2267]
    __PACKAGE__->set_primary_key("uri", "branch", "revision");
  • replacement in src/lib/Hydra/Schema/CachedGitInputs.pm at line 67
    [2.2269][2.2269:2414]()
    # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:WzfB4qf6XqvIll/gPFZE6Q
    [2.2269]
    [2.2414]
    # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-18 21:46:00
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:K9P4pi33P54ZB8D/6WzAYw
  • edit in src/sql/hydra.sql at line 297
    [4.6054]
    [4.6054]
    branch text not null,
    revision text not null,
  • replacement in src/sql/hydra.sql at line 303
    [4.6253][4.6253:6289]()
    primary key (uri, sha256hash)
    [4.6253]
    [4.6289]
    primary key (uri, branch, revision)