declarative projects: Pull jobset spec build from the remote store

[?]
Apr 1, 2017, 2:38 PM
CHI2EHBJHXPJI2KUSHOCMFYGOPJNITAMPGOY3UAUV76ELONVYNCAC

Dependencies

  • [2] B3UW2ZRB Restart jobset evals efficiently
  • [3] 6WRGCITD Enable declarative projects.
  • [4] GEADFVZ5 hydra-queue-runner: Improved scheduling
  • [5] 3BTJRSU3 GitInput.pm: Don't do a chdir to the Git clone
  • [6] UOINKJ2J Add an action to cancel all builds in a jobset eval
  • [7] INNOEHO6 * Fix getBuildLog for bzip2'd files.
  • [8] JAH3UPWA Support revision control systems via plugins
  • [9] VHV6GI4L Add a jobset eval action to restart all aborted/cancelled builds
  • [10] OSVLMLCQ hydra: factored out build restart and
  • [*] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [*] 2GK5DOU7 * Downloading closures.

Change contents

  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 71
    [3.2172][3.2172:2216]()
    my $declText = read_file($declPath)
    [3.2172]
    [3.2216]
    my $declText = readNixFile($declPath)
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 26
    [4.1050][4.1060:1079]()
    getTotalShares
    [4.1050]
    [4.688]
    getTotalShares readNixFile
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 415
    [4.423][4.423:525]()
    init => sub { chdir $args{dir} or die "changing to $args{dir}" if defined $args{dir}; });
    [4.423]
    [4.525]
    init => sub {
    chdir $args{dir} or die "changing to $args{dir}" if defined $args{dir};
    if (defined $args{env}) {
    foreach my $key (keys %{$args{env}}) {
    if (defined $args{env}->{$key}) {
    $ENV{$key} = $args{env}->{$key};
    } else {
    delete $ENV{$key};
    }
    }
    }
    });
  • edit in src/lib/Hydra/Helper/Nix.pm at line 512
    [2.1137]
    [4.1616]
    }
    # Read a file from the (possibly remote) nix store
    sub readNixFile {
    my ($path) = @_;
    my $config = getHydraConfig();
    my $storeUri = $config->{'store_uri'} // "";
    return grab(cmd => ["nix", "cat-store", "$path"], env => { NIX_REMOTE => "$storeUri" });