Cache flake-based jobset evaluations
[?]
May 10, 2019, 10:41 PM
SW7STLQ76HI564FLEJTVUGFMZ2DNMHPJFYFRWY5KYP2OQC42VIVACDependencies
- [2]
QUMWPGCUAdd flake configuration to the web interface - [3]
ZPHREC7Xhydra-eval-jobset: Support flakes - [4]
WVD3YYONhydra-evaluator: Add some debug code - [5]
MPFSVI5XPedantry: CLOCK_REALTIME -> CLOCK_MONOTONIC - [6]
AZCCANUBMissing part of aaacf9eda36f5cdcc77cec20d6f49fbb6f925105 - [7]
RXVJFQ5AEvaluator cleanups - [8]
5SHCWE7X* Prevent repeated evaluation of a jobset with the same inputs. This - [9]
PDZD5QORhydra-evaluator: handle the case where there is no previous jobset eval - [10]
IMQRX4MPhydra-eval-jobs: Use JSON instead of XML - [11]
Y6AHH4THRemove the logfile and logSize columns from the database - [12]
LZVO64YGMerge in the first bits of the API work - [13]
KPZNJ33U* In views, support selecting a job that doesn't depend on the - [14]
G2T4WAHIStore the inputs of each evaluation in the database - [15]
POPU2ATH* hydra_scheduler: use eval-jobs. - [16]
SB2V735VKeep track of the database schema version - [17]
CCIORPJ5When manually scheduling an eval, force re-instantiation of store derivations - [*]
N22GPKYT* Put info about logs / build products in the DB. - [*]
NS7SND6Rhydra-evaluator: Send statistics to statsd - [*]
4JE45C3CForce creation of a new uncached eval if jobs have been removed - [*]
RFE6T5LG* Store jobset evaluations in the database explicitly. This includes
Change contents
- edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 89
is_nullable: 1=head2 flakedata_type: 'text' - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 119
"flake",{ data_type => "text", is_nullable => 1 }, - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 198
# Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-06-13 01:54:50# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SlEiF8oN6FBK262uSiMKiw# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-05-11 00:16:10# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XwlJFCJiS0LHsLg2fFqfUg - edit in src/script/hydra-eval-jobset at line 610
my $flakeRef = $jobset->flake;if (defined $flakeRef) {(my $res, my $json, my $stderr) = captureStdoutStderr(600, "nix", "flake", "info", "--tarball-ttl", 0, "--json", "--", $flakeRef);die "'nix flake info' returned " . ($res & 127 ? "signal $res" : "exit code " . ($res >> 8)). ":\n" . ($stderr ? decode("utf-8", $stderr) : "(no output)\n")if $res;$flakeRef = decode_json($json)->{'uri'};} - replacement in src/script/hydra-eval-jobset at line 639
if (defined $prevEval && $prevEval->hash eq $argsHash && !$dryRun && !$jobset->forceeval) {if (defined $prevEval && $prevEval->hash eq $argsHash && !$dryRun && !$jobset->forceeval && $prevEval->flake eq $flakeRef) { - replacement in src/script/hydra-eval-jobset at line 650
my $jobs = evalJobs($inputInfo, $exprType, $jobset->nixexprinput, $jobset->nixexprpath, $jobset->flake);my $jobs = evalJobs($inputInfo, $exprType, $jobset->nixexprinput, $jobset->nixexprpath, $flakeRef); - edit in src/script/hydra-eval-jobset at line 710[21.385][22.6334]
, flake => $flakeRef - edit in src/sql/hydra.sql at line 529[4.1113][22.7667]
flake text, -- immutable flake reference - edit in src/sql/upgrade-57.sql at line 7[2.4556]
alter table JobsetEvals add column flake text;