Remove the Jobs table

[?]
May 27, 2020, 6:09 PM
NZXX6PLDWEDQHXFF5JCZWGB22VA3WSDYLX65K6BQ5GNWPOE43N7QC

Dependencies

  • [2] OYBPENNM Postgresql 8.x needs as for column.
  • [3] CJRWFVKZ Add a ‘latest-finished’ action
  • [4] LSNBPB3Z Fix tabs
  • [5] IP5MOFDG Also redirect /job requests that refer to a renamed jobset
  • [6] PMTIAQEP Build page: Show output / closure sizes
  • [7] PDZXZZPZ Shut up some Perl 5.20 warnings
  • [8] JOST7ANV Sort metrics by name
  • [9] 46RR7WQC Add link to metrics
  • [10] 5BXLRZPM job prometheus endpoint: d'oh
  • [11] X5W5PGGM Builds: populate Builds.jobset_id in hydra-eval-jobset
  • [12] PNR4DR6O Jobs.builds: Fetch via Jobs.jobset_id
  • [13] VB6DJ5R4 Fix reproduction instructions
  • [14] LPPZS34Y Merge remote-tracking branch 'origin/master' into flake
  • [15] N74SRHS6 Remove the "releases" feature
  • [16] VGUFW62F schema/Builds: use jobset_id instead of jobset name matches
  • [17] CMU3YKOU * Store the release name.
  • [18] JPTXSWBO Show whether a job still exists
  • [19] QKG63Y2Z Fix latest-finished
  • [20] N22GPKYT * Put info about logs / build products in the DB.
  • [21] 3VRZBVFX hydra-eval-jobs -> nix eval-hydra-jobs
  • [22] EVYSAFB2 Transpose the aggregate constituents table
  • [23] CQTN62OH Die tabs die
  • [24] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [25] TWVSALRL * Allow the maximum number of concurrent builds per platform to be
  • [26] 7VQ4ALFY Update "make check" for the new queue runner
  • [27] R6B5CAFF Let Builds.timestamp refer to the time the build was added
  • [28] ZWCTAZGL added newsitems, added some admin options to clear various caches.
  • [29] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [30] SMCOU72F hydra: add some admin for adding/enabling/etc build machines
  • [31] 6GZZDDQB Move the store path size chart to the job page
  • [32] NABL63FI * hydra: project members can do stuff that the owner can do
  • [33] X27GNHDV * Basic job info in the database.
  • [34] YU6CND7C Remove support for views
  • [35] JJT5QG3K remove revision from cached cvs inputs, and added missing files
  • [36] BQHDSG6O Merge remote-tracking branch 'origin/master' into flake
  • [37] FD76WVTQ missing file
  • [38] SBKX3YH2 cleanup
  • [39] CHXKOIO7 Fix typo.
  • [40] C4RV47LW
  • [41] G5YSUSNZ In build tables, hide the project, jobset and/or job name if they're constant
  • [42] WUCOEIFA Search: Limit the number of results
  • [43] RI4S7SYT * Job status: show the active jobs.
  • [44] ZB3JV52W Add a "My jobsets" tab to the dashboard
  • [45] HRAFVVOE make logo configurable via HYDRA_LOGO env var
  • [46] 5SHCWE7X * Prevent repeated evaluation of a jobset with the same inputs. This
  • [47] JD7AWXQG Remove now-unused SystemTypes table
  • [48] S66BOMVU * Added authentication.
  • [49] 4D4U5IPY * Allow jobsets to be disabled.
  • [50] HHWCS3QQ Jobs: populate Jobs.jobset_id field when writing from hydra-eval-jobset
  • [51] KAZWI5G4 * hydra: buildpage, show changes since last build/successful build
  • [52] LZVO64YG Merge in the first bits of the API work
  • [53] CCIORPJ5 When manually scheduling an eval, force re-instantiation of store derivations
  • [54] 2GUAKGTB Fix indentation of build.tt
  • [55] 75XUS62Y * Added a page to quickly see all failed builds and failed evaluations
  • [56] Y6AHH4TH Remove the logfile and logSize columns from the database
  • [57] PCKLFRT5 Support push notification of repository changes
  • [58] T5BIOVJE Add support for tracking custom metrics
  • [59] HPEG2RHV Merge the BuildResultInfo table into the Builds table
  • [60] GNIEG2GC * Disambiguate jobs by jobset name. I.e. jobs with the same name in
  • [61] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [62] ICRGXEPI Builds.jobset_id: make not-null
  • [63] SIDK2E7V Jobs: add a nullable jobset_id foreign key to Jobsets.
  • [64] QUMWPGCU Add flake configuration to the web interface
  • [65] CUFVKLLA Remove Hydra::Helper::nix::txn_do from the Perl code
  • [66] RBNQKATL * Adding persistant releases. A release is a named set of builds.
  • [67] RFE6T5LG * Store jobset evaluations in the database explicitly. This includes
  • [68] FTPCV25M Store aggregate members in the database
  • [69] IT5AXPY2 Disable channels on binary cached based Hydra instances
  • [70] OEPUOUNB Using twitter bootstrap for more consistent looks for Hydra
  • [71] R2PON6R7 Allow non-admin users to see the machine status page
  • [72] YTIDBFGU Drop unused "disabled" columns
  • [73] TQKGQ5R3
  • [74] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [75] DH3KNBAV Merge remote-tracking branch 'upstream/who-broke-builds' into upstream-master
  • [76] HTDANBLN Merge pull request #730 from NixOS/flake
  • [77] 2YXO5ZGQ Hydra/28: Rename "scheduler" to "evaluator"
  • [78] NRSKJPP4 makeLink -> menuItem
  • [79] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [80] S6OISBQ3 * Mark the "current" builds in a jobset, i.e. those corresponding to
  • [81] JIJDYWPY Remove the Build menu from the top bar
  • [82] PHJF4FUT Add missing files
  • [83] 2R7GHSA4 * hydra: added initial version of build graph
  • [84] 5ZRYT2YE Jobs.jobset_id: make not-null
  • [85] MMBKNEQB LatestSucceededForJob{,set}: Filter with jobset_id
  • [86] NQPGIRXX Revert "hydra-eval-jobs -> nix eval-hydra-jobs"
  • [87] P3M6UFMP Merge remote-tracking branch 'origin/master' into flake
  • [88] ZPHREC7X hydra-eval-jobset: Support flakes
  • [89] JAUTUNGI bug fix
  • [90] IK53RV4V
  • [91] RYTQLATY Keep track of failed paths in the Hydra database
  • [92] IGR322YP sql: Generate models from postgresql
  • [93] C3AG65SW Add one-shot jobsets
  • [94] AZCCANUB Missing part of aaacf9eda36f5cdcc77cec20d6f49fbb6f925105
  • [95] W5OAZWPD Drop the errorMsg column in the Jobs table
  • [96] PCD3ZH6Z Partially revert 1c20cfdf2403feb78cef515faf15c04d5c9f17bd
  • [97] YTZOC7C5 * Editing of jobset inputs.
  • [98] ZI535LI6 * hydra: 'new' UI for project/jobset/job/build
  • [99] 6WRGCITD Enable declarative projects.
  • [100] RPTSGIRC Eliminate duplicate getPreviousBuild functions
  • [101] NQJFHYBI job: create a prometheus endpoint
  • [102] TM6C352U Ensure that stoptime and starttime are set for finished builds
  • [103] FANTYCR7 Materialize the number of finished builds
  • [104] KXGOUX7P * Creating releases.
  • [105] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [106] 777XFGVY Hydra/22: on job page, 'finished builds' shows nothing for old (non-current) jobs
  • [107] MESO2HDV Remove obsolete JobStatus source
  • [108] PMNWRTGJ Add multiple output support
  • [109] 3PNG7NIB Remove trailing whitespace
  • [110] KPZNJ33U * In views, support selecting a job that doesn't depend on the
  • [111] XAJFR6SR Add a chart to the job pages showing the closure size over time
  • [112] 3ZCEPLNO
  • [113] 7X2VKCAM Reorder
  • [114] BXHG3HYL When renaming a jobset, add a redirect from the old name
  • [115] TPNHTE5V Remove obsolete Builds columns and provide accurate "Running builds"
  • [116] XKXMU5PV Ellipsize long jobset/job names to prevent bootstrap navbar breakage
  • [117] WFJ3ZPRM add tests for scm inputs
  • [118] 36M6DGIT Show the runtime/build dependencies in the build page
  • [119] L2E6EVE2 * Merged the Build and Job tables.
  • [120] EJ7C77C3 Allow searching for store and drv paths. Only does a complete match to reduce load on database.
  • [121] LCKWLQW3 * In Sqlite "release" is now a keyword, so use "release_" instead.
  • [122] FAIJDQKZ
  • [123] RAQUW45K Remove per-platform links from the job page
  • [124] KSBB33RE Add a dashboard
  • [125] 7ECJWNVX Cleanup Project model
  • [126] SJLEZFC4 check getHydraPath in stead of Envvar HYDRA_DBI directly
  • [127] FAUCW4NH Remove project/jobset/job/build id from the navbar
  • [128] RBZRCTAL hydra: fixed and re-enabled evaluation tests
  • [129] WE5Q2NVI Allow build to be bumped to the front of the queue via the web interface
  • [130] UDS5VIT6 Lazy load the metrics tab
  • [131] PF72JKWQ Add a "My jobs" tab to the dashboard
  • [132] QQ4STW3S missing file
  • [133] JM3DPYOM generated schema with new dbix class schema loader, grrrrrr
  • [134] G2WXEQHE Remove the Errors page
  • [135] VU2OLHD2 Move most of AddBuilds to hydra-eval-jobset
  • [136] CLJQCY2X * Store info about all the build actions and allow them to be
  • [137] ZHBEOOUQ show evaluation errors in log of tests
  • [138] 4HPT4SDD Revert "Remove now-unused SystemTypes table"
  • [139] ZEHSSVFG
  • [140] WYMEG4VP Make some more tables clickable
  • [141] B7ENVLRS hydra-queue-runner: Make build notification more reliable
  • [142] LMTJWY44 hydra-eval-jobset: $firstOutput is not used so can be removed
  • [143] CQQSJLON On aggregate job pages, show a matrix showing all the constituent builds
  • [144] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [145] BB2KXLXZ Move the build time chart to the job page
  • [146] SJN2QPWH * Big speed-up of the job status page and the channel generation (such
  • [147] SHBLLAVH * More global substitution.
  • [148] VJHIHMEH * Store the meta.longDescription and meta.license attributes in the
  • [149] O5DYTVGA Add jobset/job menus on buid log pages
  • [150] ZVTSOVHN * Support Subversion checkouts.
  • [151] D5QIOJGP * Move everything up one directory.
  • [152] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [153] E7M2WP7A Remove unused Jobs columns
  • [154] 5O6E5SU5 hydra: store logfile/output path/closure size
  • [155] UWVMQIAC * Refactoring.
  • [156] FYO6NECE hydra
  • [157] QLOLZHRX Allow a per-jobset check interval
  • [158] FZR7ET5D Jobsets: add a SERIAL, unique, non-null id column
  • [159] J5UVLXOK * Start of a basic Catalyst web interface.
  • [160] WGUKOIQZ Fix indentation
  • [161] KOTB7BKV
  • [162] PY5GVGC7 Implemented quoted strings support in hydra-build-products to allow file names with spaces + testcase
  • [163] K3HODXGH Check all inputs for blame but only email selected inputs
  • [164] ITJWNQEZ Update Hydra schema, otherwise hydra-notify will not work.
  • [165] RGGC557O job prometheus endpoint: drop nixname, too variable
  • [166] 3LEGFJFP "Reproduce" action: Support flakes
  • [167] LU64AZJS hydra-eval-jobset: Pass --no-allow-import-from-derivation
  • [168] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [169] UICHT2PS Add a search feature
  • [170] LFZQIVPX Remove more dead code
  • [171] KQAQ4FIF Update Schema classes
  • [172] XJRJ4J7M Add user registration
  • [173] MOX7XJ2E Merge the BuildSchedulingInfo table into the Builds table
  • [174] G2T4WAHI Store the inputs of each evaluation in the database
  • [175] 4JS4DWHD All/recent builds -> Latest builds
  • [176] SJPEC375 Builds: add a nullable jobset_id foreign key to Jobsets.
  • [177] MWXDVTS3 Copy the flake migration from the flake branch
  • [178] QL55ECJ6 - adapted ui for hydra, more in line with nixos.org website
  • [179] GJFYEU3S * Nix now stores logs by default as bzip2, make sure the build page uncompresses before showing.
  • [180] PZL3SZM3 Give every page a consistent title
  • [181] 2QISRMJK Job page: show queued as well as running builds
  • [182] 53IMJNBB Add isChannel column and meta attribute.
  • [183] JTRG7RDQ add support for git as jobinput
  • [184] DEMSSSB2 * Controller for jobs which inherits all actions in ListBuilds. So
  • [185] LCLXI7PT Search: Mark disabled projects/jobsets/jobs
  • [186] D3DIBMOK * For products that are directories (like manuals), allow a default
  • [187] H7CNGK4O * Log evaluation errors etc. in the DB.
  • [188] GK326R5N Search: Don't return hidden projects/jobsets
  • [189] 4CELXP7P Remove the longDescription field
  • [190] 3HCBU2FA
  • [191] 26PYNDXV Remove the errorMsg column from the Builds table
  • [192] TX7Q4RAS Add page showing latest build steps
  • [193] TLZ2SPBR
  • [194] 6BLUKEQ2 * Caching of "path" inputs, and fake a revision number for those.
  • [195] N4ODPYP7 Job page: Remove channel tab
  • [196] B72GLND4
  • [197] JTHWA6AM Rename aggregate members to constituents
  • [198] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [199] DHMTPGST * Ran update-dbix.
  • [200] 3HZY24CX * Make jobsets viewable under
  • [201] R5D7DZPE
  • [202] Q5HZWFCY Add support for darcs repositories.
  • [203] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [204] Q6VFUIC6 Remove hydra-eval-guile-jobs
  • [205] BVOPAMLS
  • [206] YAPITGB3 * Boolean inputs.
  • [207] GEADFVZ5 hydra-queue-runner: Improved scheduling
  • [208] KN3VYE5P * Cleaned up the foreign key constraints.
  • [209] D7PL2VWU Move more actions from the top bar
  • [210] US27ZTX5 * HydraFrontend -> Hydra.
  • [211] W4G5MZZS hydra-evaluator improvements
  • [212] INJAHTMF Fix metric alignment
  • [213] PHX2HIVG * Store info about the build inputs in the build record.
  • [214] S5PV6IIM * Represent jobs explicitly in the DB.
  • [215] 5GRW5XU4 Job page: Put latest builds on top
  • [216] S5NPXZG3 Fix indentation
  • [217] YTSIRIMK * Separate job status and all builds pages.
  • [218] SW7STLQ7 Cache flake-based jobset evaluations
  • [219] SS4TZXNU Distinguish between permanent evaluation errors and transient input errors
  • [220] 4S5JF5JP Use latest DBIx::Class::Schema::Loader
  • [221] 6HWIUOSU Avoid fetching Projects/Jobsets just to get the name column
  • [222] SB2V735V Keep track of the database schema version
  • [223] E7FID72S Remove the BuildMachines and BuildMachinesSystemTypes tables
  • [224] AHTEIK7G * Added a maintainers field to the Builds table.
  • [*] LBNVQXUB * Build the /build stuff in a separate controller.
  • [*] HX4QYOYA add first evaluations tests

Change contents

  • replacement in src/lib/Hydra/Controller/Build.pm at line 89
    [17.153][17.153:197]()
    , job => $c->stash->{job}->name
    [17.153]
    [17.361]
    , job => $c->stash->{job}
  • replacement in src/lib/Hydra/Controller/Job.pm at line 27
    [5.598][5.598:675](),[5.675][17.176:311](),[17.803][17.176:311](),[17.176][17.176:311]()
    $c->stash->{job} = $c->stash->{jobset}->jobs->find({ name => $jobName })
    or notFound($c, "Job $projectName:$jobsetName:$jobName doesn't exist.");
    $c->stash->{project} = $c->stash->{job}->project;
    [5.598]
    [17.427]
    $c->stash->{job} = $jobName;
    $c->stash->{project} = $c->stash->{jobset}->project;
  • edit in src/lib/Hydra/Controller/Job.pm at line 33
    [17.112][17.112:144]()
    my $job = $c->stash->{job};
  • replacement in src/lib/Hydra/Controller/Job.pm at line 35
    [17.2][17.188:255]()
    my $lastBuild = $job->builds->find(
    { finished => 1 },
    [17.2]
    [17.255]
    my $lastBuild = $c->stash->{jobset}->builds->find(
    { job => $c->stash->{job}, finished => 1 },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 47
    [17.618][17.618:650]()
    $c->stash->{job}->name,
    [17.618]
    [17.679]
    $c->stash->{job},
  • replacement in src/lib/Hydra/Controller/Job.pm at line 57
    [17.1013][17.1013:1045]()
    $c->stash->{job}->name,
    [17.1013]
    [10.0]
    $c->stash->{job},
  • edit in src/lib/Hydra/Controller/Job.pm at line 66
    [17.80][17.0:32]()
    my $job = $c->stash->{job};
  • replacement in src/lib/Hydra/Controller/Job.pm at line 70
    [17.1827][17.33:83]()
    [ $job->builds->search({ finished => 1 },
    [17.1827]
    [17.832]
    [ $c->stash->{jobset}->builds->search({ job => $c->stash->{job}, finished => 1 },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 74
    [17.34][17.84:114](),[17.114][17.35:66](),[17.1930][17.35:66]()
    $job->builds->search(
    { finished => 0 },
    [17.34]
    [17.0]
    $c->stash->{jobset}->builds->search(
    { job => $c->stash->{job}, finished => 0 },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 81
    [17.234][17.0:130]()
    { aggregate => { -in => $job->builds->search({}, { columns => ["id"], order_by => "id desc", rows => 15 })->as_query } },
    [17.234]
    [17.0]
    { aggregate => { -in => $c->stash->{jobset}->builds->search({ job => $c->stash->{job} }, { columns => ["id"], order_by => "id desc", rows => 15 })->as_query } },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 91
    [17.643][17.365:491]()
    my $jobName = $b->get_column('job');
    $aggregates->{$b->get_column('aggregate')}->{constituents}->{$jobName} =
    [17.643]
    [17.491]
    $aggregates->{$b->get_column('aggregate')}->{constituents}->{$b->job} =
  • replacement in src/lib/Hydra/Controller/Job.pm at line 93
    [17.579][17.579:619]()
    $constituentJobs{$jobName} = 1;
    [17.579]
    [17.199]
    $constituentJobs{$b->job} = 1;
  • replacement in src/lib/Hydra/Controller/Job.pm at line 108
    [17.145][17.145:185]()
    , job => $c->stash->{job}->name
    [17.145]
    [17.185]
    , job => $c->stash->{job}
  • edit in src/lib/Hydra/Controller/Job.pm at line 115
    [17.96][17.96:128]()
    my $job = $c->stash->{job};
  • replacement in src/lib/Hydra/Controller/Job.pm at line 116
    [17.178][17.2570:2627](),[17.2570][17.2570:2627](),[17.2627][8.0:77]()
    $c->stash->{metrics} = [ $job->buildmetrics->search(
    { }, { select => ["name"], distinct => 1, order_by => "name", }) ];
    [17.178]
    [17.0]
    $c->stash->{metrics} = [ $c->stash->{jobset}->buildmetrics->search(
    { job => $c->stash->{job} }, { select => ["name"], distinct => 1, order_by => "name", }) ];
  • replacement in src/lib/Hydra/Controller/Job.pm at line 123
    [17.96][17.96:217]()
    my @res = $c->stash->{job}->builds->search(
    { finished => 1, buildstatus => 0, closuresize => { '!=', 0 } },
    [17.96]
    [17.217]
    my @res = $c->stash->{jobset}->builds->search(
    { job => $c->stash->{job}, finished => 1, buildstatus => 0, closuresize => { '!=', 0 } },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 135
    [17.96][17.96:217]()
    my @res = $c->stash->{job}->builds->search(
    { finished => 1, buildstatus => 0, closuresize => { '!=', 0 } },
    [17.96]
    [17.217]
    my @res = $c->stash->{jobset}->builds->search(
    { job => $c->stash->{job}, finished => 1, buildstatus => 0, closuresize => { '!=', 0 } },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 144
    [17.94][17.94:208]()
    my @res = $c->stash->{job}->builds->search(
    { finished => 1, buildstatus => 0, size => { '!=', 0 } },
    [17.94]
    [17.208]
    my @res = $c->stash->{jobset}->builds->search(
    { job => $c->stash->{job}, finished => 1, buildstatus => 0, size => { '!=', 0 } },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 157
    [17.2896][17.2896:2983]()
    my @res = $c->stash->{job}->buildmetrics->search(
    { name => $metricName },
    [17.2896]
    [17.2983]
    my @res = $c->stash->{jobset}->buildmetrics->search(
    { job => $c->stash->{job}, name => $metricName },
  • replacement in src/lib/Hydra/Controller/Job.pm at line 168
    [17.56][17.364:419](),[17.685][17.364:419]()
    $c->stash->{allBuilds} = $c->stash->{job}->builds;
    [17.685]
    [17.578]
    $c->stash->{allBuilds} = $c->stash->{jobset}->builds->search({ job => $c->stash->{job} });
  • replacement in src/lib/Hydra/Controller/Job.pm at line 170
    [17.665][16.0:83]()
    ->search({}, {bind => [$c->stash->{jobset}->id, $c->stash->{job}->name]});
    [17.665]
    [17.799]
    ->search({}, {bind => [$c->stash->{jobset}->id, $c->stash->{job}]});
  • replacement in src/lib/Hydra/Controller/Job.pm at line 172
    [17.834][17.420:521]()
    $c->stash->{project}->name . "-" . $c->stash->{jobset}->name . "-" . $c->stash->{job}->name;
    [17.834]
    [17.229]
    $c->stash->{project}->name . "-" . $c->stash->{jobset}->name . "-" . $c->stash->{job};
  • replacement in src/lib/Hydra/Controller/Job.pm at line 183
    [17.462][17.462:502]()
    , job => $c->stash->{job}->name
    [17.462]
    [17.502]
    , job => $c->stash->{job}
  • replacement in src/lib/Hydra/Controller/Root.pm at line 462
    [17.744][17.744:801](),[17.801][17.498:545]()
    $c->stash->{jobs} = [ $c->model('DB::Jobs')->search(
    { "me.name" => { ilike => "%$query%" }
    [17.744]
    [17.545]
    $c->stash->{jobs} = [ $c->model('DB::Builds')->search(
    { "job" => { ilike => "%$query%" }
  • edit in src/lib/Hydra/Controller/Root.pm at line 466
    [17.608]
    [17.608]
    , iscurrent => 1
  • replacement in src/lib/Hydra/Controller/Root.pm at line 468
    [17.619][17.0:100](),[17.100][2.0:210](),[2.210][17.307:338](),[17.307][17.307:338]()
    { order_by => ["enabled_ desc", "project", "jobset", "name"], join => ["project", "jobset"]
    , "+select" => [\ "(project.enabled = 1 and jobset.enabled = 1 and exists (select 1 from Builds where project = project.name and jobset = jobset.name and job = me.name and iscurrent = 1)) as enabled_"]
    , "+as" => ["enabled"]
    [17.619]
    [17.32]
    { order_by => ["project", "jobset", "job"], join => ["project", "jobset"]
  • replacement in src/lib/Hydra/Controller/Root.pm at line 470
    [17.73][17.338:353](),[17.338][17.338:353]()
    } ) ];
    [17.73]
    [17.50]
    } )
    ];
  • replacement in src/lib/Hydra/Controller/User.pm at line 342
    [17.1046][17.1046:1109]()
    my @builds = $j->job->builds->search(
    { },
    [17.1046]
    [17.1109]
    my @builds = $j->jobset->builds->search(
    { job => $j->job },
  • replacement in src/lib/Hydra/Controller/User.pm at line 345
    [17.1161][7.0:83]()
    push @{$c->stash->{starredJobs}}, { job => $j->job, builds => [@builds] };
    [17.1161]
    [17.1241]
    push @{$c->stash->{starredJobs}}, { job => $j, builds => [@builds] };
  • replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 49
    [17.37][17.168:208]()
    return $build->job->builds->search(
    [17.37]
    [17.376]
    return $build->jobset->builds->search(
  • file deletion: Jobs.pm (----------)
    [17.477][17.2851:2882](),[17.2882][17.1454:1454]()
    use utf8;
    package Hydra::Schema::Jobs;
    # Created by DBIx::Class::Schema::Loader
    # DO NOT MODIFY THE FIRST PART OF THIS FILE
    =head1 NAME
    Hydra::Schema::Jobs
    =cut
    use strict;
    use warnings;
    use base 'DBIx::Class::Core';
    =head1 COMPONENTS LOADED
    =over 4
    =item * L<Hydra::Component::ToJSON>
    =back
    =cut
    __PACKAGE__->load_components("+Hydra::Component::ToJSON");
    =head1 TABLE: C<jobs>
    =cut
    __PACKAGE__->table("jobs");
    =head1 ACCESSORS
    =head2 project
    data_type: 'text'
    is_foreign_key: 1
    is_nullable: 0
    =head2 jobset
    data_type: 'text'
    is_foreign_key: 1
    is_nullable: 0
    =head2 jobset_id
    data_type: 'integer'
    is_foreign_key: 1
    is_nullable: 0
    =head2 name
    data_type: 'text'
    is_nullable: 0
    =cut
    __PACKAGE__->add_columns(
    "project",
    { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
    "jobset",
    { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
    "jobset_id",
    { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
    "name",
    { data_type => "text", is_nullable => 0 },
    );
    =head1 PRIMARY KEY
    =over 4
    =item * L</project>
    =item * L</jobset>
    =item * L</name>
    =back
    =cut
    __PACKAGE__->set_primary_key("project", "jobset", "name");
    =head1 RELATIONS
    =head2 builds
    Type: has_many
    Related object: L<Hydra::Schema::Builds>
    =cut
    __PACKAGE__->has_many(
    "builds",
    "Hydra::Schema::Builds",
    {
    "foreign.job" => "self.name",
    "foreign.jobset" => "self.jobset",
    "foreign.project" => "self.project",
    },
    undef,
    );
    =head2 jobset
    Type: belongs_to
    Related object: L<Hydra::Schema::Jobsets>
    =cut
    __PACKAGE__->belongs_to(
    "jobset",
    "Hydra::Schema::Jobsets",
    { name => "jobset", project => "project" },
    { is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },
    );
    =head2 project
    Type: belongs_to
    Related object: L<Hydra::Schema::Projects>
    =cut
    __PACKAGE__->belongs_to(
    "project",
    "Hydra::Schema::Projects",
    { name => "project" },
    { is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },
    );
    =head2 starredjobs
    Type: has_many
    Related object: L<Hydra::Schema::StarredJobs>
    __PACKAGE__->has_many(
    "starredjobs",
    "Hydra::Schema::StarredJobs",
    {
    "foreign.job" => "self.name",
    "foreign.jobset" => "self.jobset",
    "foreign.project" => "self.project",
    },
    undef,
    );
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:33:28
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:C5Tyh8Ke4yC6q7KIFVOHcQ
    =head2 builds
    Type: has_many
    Related object: L<Hydra::Sc2hema::Builds>
    =cut
    __PACKAGE__->has_many(
    "builds",
    "Hydra::Schema::Builds",
    {
    "foreign.job" => "self.name",
    "foreign.jobset_id" => "self.jobset_id",
    },
    undef,
    );
    1;
    =cut
    "Hydra::Schema::Jobsets",
    { id => "jobset_id" },
    { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" },
    );
    =head2 jobset_project_jobset
    Type: belongs_to
    Related object: L<Hydra::Schema::Jobsets>
    =cut
    __PACKAGE__->belongs_to(
    "jobset_project_jobset",
    __PACKAGE__->has_many(
    "buildmetrics",
    "Hydra::Schema::BuildMetrics",
    {
    "foreign.job" => "self.name",
    "foreign.jobset" => "self.jobset",
    "foreign.project" => "self.project",
    },
    undef,
    );
    =head2 buildmetrics
    Type: has_many
    Related object: L<Hydra::Schema::BuildMetrics>
    =cut
  • edit in src/lib/Hydra/Schema/BuildMetrics.pm at line 74
    [17.4143][17.4143:4163]()
    is_foreign_key: 1
  • replacement in src/lib/Hydra/Schema/BuildMetrics.pm at line 97
    [17.4696][17.4696:4762]()
    { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
    [17.4696]
    [17.4762]
    { data_type => "text", is_nullable => 0 },
  • edit in src/lib/Hydra/Schema/BuildMetrics.pm at line 131
    [17.5214][17.5214:5492]()
    );
    =head2 job
    Type: belongs_to
    Related object: L<Hydra::Schema::Jobs>
    =cut
    __PACKAGE__->belongs_to(
    "job",
    "Hydra::Schema::Jobs",
    { jobset => "jobset", name => "job", project => "project" },
    { is_deferrable => 0, on_delete => "NO ACTION", on_update => "CASCADE" },
  • replacement in src/lib/Hydra/Schema/BuildMetrics.pm at line 164
    [17.6026][17.689:831]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Roy7h/K9u7DQOzet4B1sbA
    [17.6026]
    [17.6168]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:40:41
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:AYUVs6RdefFKw+g9Yxcu/A
  • edit in src/lib/Hydra/Schema/Builds.pm at line 76
    [17.7727][17.7654:7674](),[17.7654][17.7654:7674]()
    is_foreign_key: 1
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 226
    [17.1340][17.8336:8402]()
    { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
    [17.1340]
    [17.721]
    { data_type => "text", is_nullable => 0 },
  • edit in src/lib/Hydra/Schema/Builds.pm at line 439
    [17.244][17.244:248](),[17.248][17.10124:10135](),[17.9476][17.10124:10135](),[17.10135][17.9502:9503](),[17.9502][17.9502:9503](),[17.9503][17.10136:10153](),[17.10153][17.9518:9519](),[17.9518][17.9518:9519](),[17.9519][17.10154:10193](),[17.10193][17.9565:9572](),[17.9565][17.9565:9572](),[17.9572][17.10194:10316](),[17.10316][17.3077:3153]()
    );
    =head2 job
    Type: belongs_to
    Related object: L<Hydra::Schema::Jobs>
    =cut
    __PACKAGE__->belongs_to(
    "job",
    "Hydra::Schema::Jobs",
    { jobset => "jobset", name => "job", project => "project" },
    { is_deferrable => 0, on_delete => "NO ACTION", on_update => "CASCADE" },
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 545
    [17.3378][15.20:162]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-06 12:32:57
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3IyFj/9Zf/hvmhBY4U/IBQ
    [17.3378]
    [17.4481]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:40:41
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RIKKFfcKXFWIUeM8ma++iw
  • replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 204
    [17.18354][17.110:252]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-09 15:21:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Ar6GRni8AcAQmuZyg6tFKw
    [17.18354]
    [17.1674]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:40:41
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:M61ikfnjORU7jDAH8P/j7w
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 292
    [17.2717][17.643:683](),[17.683][17.19391:19392](),[17.2717][17.19391:19392](),[17.19392][17.684:723]()
    =head2 jobs_jobset_ids
    Type: has_many
    Related object: L<Hydra::Schema::Jobs>
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 293
    [17.724][17.724:880](),[17.880][17.19404:19467](),[17.19404][17.19404:19467](),[17.19467][17.2717:2740](),[17.2717][17.2717:2740](),[17.2740][17.881:907](),[17.907][17.2750:2863](),[17.2750][17.2750:2863](),[17.2863][17.5763:5772](),[17.5772][17.2863:2866](),[17.21807][17.2863:2866](),[17.2863][17.2863:2866](),[17.2866][17.19468:19469]()
    =cut
    __PACKAGE__->has_many(
    "jobs_jobset_ids",
    "Hydra::Schema::Jobs",
    { "foreign.jobset_id" => "self.id" },
    undef,
    );
    =head2 jobs_project_jobsets
    Type: has_many
    Related object: L<Hydra::Schema::Jobs>
    =cut
    __PACKAGE__->has_many(
    "jobs_project_jobsets",
    "Hydra::Schema::Jobs",
    {
    "foreign.jobset" => "self.name",
    "foreign.project" => "self.project",
    },
    undef,
    );
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 378
    [17.22628][17.920:1062]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-09 15:32:17
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:P8+t7rgpOqkGwRdM2b+3Bw
    [17.22628]
    [17.1062]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:40:41
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:aDW78MCelU/ma953aTcHvA
  • edit in src/lib/Hydra/Schema/Projects.pm at line 159
    [17.4371][17.20640:20641](),[17.20640][17.20640:20641](),[17.20641][17.24583:24595](),[17.24595][17.20656:20673](),[17.20656][17.20656:20673](),[17.20673][17.24596:24635]()
    =head2 jobs
    Type: has_many
    Related object: L<Hydra::Schema::Jobs>
  • edit in src/lib/Hydra/Schema/Projects.pm at line 160
    [17.20716][17.20716:20722](),[17.2395][17.2317:2340](),[17.20722][17.2317:2340](),[17.2317][17.2317:2340](),[17.2340][17.24636:24671](),[17.24671][17.4695:4735](),[17.3585][17.4695:4735](),[17.4735][17.6895:6904](),[17.6904][17.4735:4738](),[17.24678][17.4735:4738](),[17.4735][17.4735:4738](),[17.4738][17.20723:20724]()
    =cut
    __PACKAGE__->has_many(
    "jobs",
    "Hydra::Schema::Jobs",
    { "foreign.project" => "self.name" },
    undef,
    );
  • replacement in src/lib/Hydra/Schema/Projects.pm at line 261
    [17.7308][15.163:305]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-06 12:32:57
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dEIVgrFGilPfITprs6nYuA
    [17.7308]
    [17.171]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:40:41
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:iBGJjFWiI9Wy9zwT7xGOEA
  • edit in src/lib/Hydra/Schema/StarredJobs.pm at line 59
    [17.3195][17.3195:3215]()
    is_foreign_key: 1
  • replacement in src/lib/Hydra/Schema/StarredJobs.pm at line 71
    [17.3511][17.3511:3577]()
    { data_type => "text", is_foreign_key => 1, is_nullable => 0 },
    [17.3511]
    [17.3577]
    { data_type => "text", is_nullable => 0 },
  • edit in src/lib/Hydra/Schema/StarredJobs.pm at line 93
    [17.3791][17.3791:3867]()
    =head2 job
    Type: belongs_to
    Related object: L<Hydra::Schema::Jobs>
    =cut
  • edit in src/lib/Hydra/Schema/StarredJobs.pm at line 94
    [17.3868][17.3868:4068]()
    __PACKAGE__->belongs_to(
    "job",
    "Hydra::Schema::Jobs",
    { jobset => "jobset", name => "job", project => "project" },
    { is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },
    );
  • replacement in src/lib/Hydra/Schema/StarredJobs.pm at line 140
    [17.4849][17.7469:7611]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fw4FfzmOhzDk0ZoSuNr2ww
    [17.4849]
    [17.4991]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:36:07
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RRDQ6UQL/bjXPD+HO1s5ug
  • replacement in src/lib/Hydra/View/TT.pm at line 40
    [17.173][17.173:476]()
    my ($self, $c, $job) = @_;
    my $latestEval = $job->jobset->jobsetevals->search(
    { hasnewbuilds => 1},
    { rows => 1, order_by => ["id desc"] })->single;
    return 0 if !defined $latestEval; # can't happen
    return scalar($latestEval->builds->search({ job => $job->name })) != 0;
    [17.173]
    [17.476]
    my ($self, $c, $jobset, $jobName) = @_;
    return defined $jobset->builds->search({ job => $jobName, iscurrent => 1 })->single;
  • replacement in src/root/all.tt at line 2
    [17.45][17.90:151](),[17.733][17.90:151](),[17.90][17.90:151]()
    (job ? " for job $project.name:$jobset.name:$job.name" :
    [17.45]
    [17.151]
    (job ? " for job $project.name:$jobset.name:$job" :
  • replacement in src/root/build.tt at line 1
    [17.7350][17.262:348]()
    [% WRAPPER layout.tt title="Build $id of job $project.name:$jobset.name:$job.name" %]
    [17.7350]
    [17.2280]
    [% WRAPPER layout.tt title="Build $id of job $project.name:$jobset.name:$job" %]
  • replacement in src/root/build.tt at line 261
    [17.10210][17.4812:4931]()
    [% INCLUDE renderProductList latestRoot=['/job' build.project.name build.jobset.name build.job.name 'latest'] %]
    [17.10210]
    [17.10347]
    [% INCLUDE renderProductList latestRoot=['/job' build.project.name build.jobset.name build.job 'latest'] %]
  • replacement in src/root/build.tt at line 387
    [17.9528][6.0:111]()
    [% chartsURL = c.uri_for('/job' build.project.name build.jobset.name build.job.name) _ "#tabs-charts" %]
    [17.9528]
    [6.111]
    [% chartsURL = c.uri_for('/job' build.project.name build.jobset.name build.job) _ "#tabs-charts" %]
  • replacement in src/root/build.tt at line 428
    [17.8216][9.0:190]()
    <td><tt><a class="row-link" [% HTML.attributes(href => c.uri_for('/job' project.name jobset.name job.name 'metric' metric.name)) %]">[%HTML.escape(metric.name)%]</a></tt></td>
    [17.8216]
    [17.57]
    <td><tt><a class="row-link" [% HTML.attributes(href => c.uri_for('/job' project.name jobset.name job 'metric' metric.name)) %]">[%HTML.escape(metric.name)%]</a></tt></td>
  • replacement in src/root/build.tt at line 510
    [17.261][13.0:114]()
    <span class="shell-prompt"># </span>nix build [% HTML.escape(eval.flake) %]#hydraJobs.[% HTML.escape(job.name) %]
    [17.261]
    [17.375]
    <span class="shell-prompt"># </span>nix build [% HTML.escape(eval.flake) %]#hydraJobs.[% HTML.escape(job) %]
  • replacement in src/root/dashboard.tt at line 25
    [17.6220][17.480:689]()
    <td><span class="[% IF !jobExists(j.job) %]disabled-job[% END %]">[% INCLUDE renderFullJobName project=j.job.get_column('project') jobset=j.job.get_column('jobset') job=j.job.name %]</span></td>
    [17.6220]
    [17.6360]
    <td><span class="[% IF !jobExists(j.job.jobset j.job.job) %]disabled-job[% END %]">[% INCLUDE renderFullJobName project=j.job.get_column('project') jobset=j.job.get_column('jobset') job=j.job.job %]</span></td>
  • replacement in src/root/job-metrics-tab.tt at line 7
    [17.283][17.283:414]()
    [% INCLUDE createChart id="build-times" yaxis="sec" dataUrl=c.uri_for('/job' project.name jobset.name job.name 'build-times') %]
    [17.283]
    [17.414]
    [% INCLUDE createChart id="build-times" yaxis="sec" dataUrl=c.uri_for('/job' project.name jobset.name job 'build-times') %]
  • replacement in src/root/job-metrics-tab.tt at line 11
    [17.449][17.449:583]()
    [% INCLUDE createChart id="closure-size" yaxis="mib" dataUrl=c.uri_for('/job' project.name jobset.name job.name 'closure-sizes') %]
    [17.449]
    [17.583]
    [% INCLUDE createChart id="closure-size" yaxis="mib" dataUrl=c.uri_for('/job' project.name jobset.name job 'closure-sizes') %]
  • replacement in src/root/job-metrics-tab.tt at line 15
    [17.617][17.617:749]()
    [% INCLUDE createChart id="output-size" yaxis="mib" dataUrl=c.uri_for('/job' project.name jobset.name job.name 'output-sizes') %]
    [17.617]
    [17.749]
    [% INCLUDE createChart id="output-size" yaxis="mib" dataUrl=c.uri_for('/job' project.name jobset.name job 'output-sizes') %]
  • replacement in src/root/job-metrics-tab.tt at line 19
    [17.785][9.191:361]()
    <h3>Metric: <a [% HTML.attributes(href => c.uri_for('/job' project.name jobset.name job.name 'metric' metric.name)) %]><tt>[%HTML.escape(metric.name)%]</tt></a></h3>
    [17.785]
    [17.844]
    <h3>Metric: <a [% HTML.attributes(href => c.uri_for('/job' project.name jobset.name job 'metric' metric.name)) %]><tt>[%HTML.escape(metric.name)%]</tt></a></h3>
  • replacement in src/root/job-metrics-tab.tt at line 23
    [17.917][17.917:1029]()
    INCLUDE createChart dataUrl=c.uri_for('/job' project.name jobset.name job.name 'metric' metric.name); %]
    [17.917]
    [17.1029]
    INCLUDE createChart dataUrl=c.uri_for('/job' project.name jobset.name job 'metric' metric.name); %]
  • replacement in src/root/job.tt at line 2
    [17.6880][17.6880:6933]()
    title="Job $project.name:$jobset.name:$job.name"
    [17.6880]
    [17.6933]
    title="Job $project.name:$jobset.name:$job"
  • replacement in src/root/job.tt at line 10
    [17.1][17.690:715]()
    [% IF !jobExists(job) %]
    [17.1]
    [17.715]
    [% IF !jobExists(jobset, job) %]
  • replacement in src/root/job.tt at line 32
    [4.51][17.422:503](),[17.52][17.422:503](),[17.422][17.422:503]()
    linkToAll=c.uri_for('/job' project.name jobset.name job.name 'all') %]
    [4.51]
    [17.503]
    linkToAll=c.uri_for('/job' project.name jobset.name job 'all') %]
  • replacement in src/root/job.tt at line 87
    [17.8814][17.1094:1214]()
    [% INCLUDE makeLazyTab tabName="tabs-charts" uri=c.uri_for('/job' project.name jobset.name job.name 'metrics-tab') %]
    [17.8814]
    [17.8850]
    [% INCLUDE makeLazyTab tabName="tabs-charts" uri=c.uri_for('/job' project.name jobset.name job 'metrics-tab') %]
  • replacement in src/root/job.tt at line 91
    [17.1226][17.74:194](),[17.194][3.820:976]()
    <li><a href="[% c.uri_for('/job' project.name jobset.name job.name 'latest') %]">Latest successful build</a></li>
    <li><a href="[% c.uri_for('/job' project.name jobset.name job.name 'latest-finished') %]">Latest successful build from a finished evaluation</a></li>
    [17.1226]
    [17.1594]
    <li><a href="[% c.uri_for('/job' project.name jobset.name job 'latest') %]">Latest successful build</a></li>
    <li><a href="[% c.uri_for('/job' project.name jobset.name job 'latest-finished') %]">Latest successful build from a finished evaluation</a></li>
  • replacement in src/root/search.tt at line 70
    [17.2365][17.891:1099]()
    <td><span class="[% IF !j.get_column('enabled') %]disabled-job[% END %]">[% INCLUDE renderFullJobName project=j.get_column('project') jobset=j.get_column('jobset') job=j.name inRow=1 %]</span></td>
    [17.2365]
    [17.2489]
    <td><span>[% INCLUDE renderFullJobName project=j.get_column('project') jobset=j.get_column('jobset') job=j.job inRow=1 %]</span></td>
  • replacement in src/root/topbar.tt at line 68
    [17.331][17.331:393]()
    <li class="nav-header">[% HTML.escape(job.name) %]</li>
    [17.331]
    [17.393]
    <li class="nav-header">[% HTML.escape(job) %]</li>
  • replacement in src/root/topbar.tt at line 71
    [17.286][17.13582:13689](),[17.13582][17.13582:13689]()
    uri = c.uri_for(c.controller('Job').action_for('overview'), [project.name, jobset.name, job.name])
    [17.286]
    [17.13689]
    uri = c.uri_for(c.controller('Job').action_for('overview'), [project.name, jobset.name, job])
  • replacement in src/root/topbar.tt at line 74
    [17.313][17.13745:13847](),[17.13745][17.13745:13847]()
    uri = c.uri_for(c.controller('Job').action_for('all'), [project.name, jobset.name, job.name])
    [17.313]
    [17.246]
    uri = c.uri_for(c.controller('Job').action_for('all'), [project.name, jobset.name, job])
  • replacement in src/root/topbar.tt at line 76
    [17.401][17.401:525]()
    [% INCLUDE menuItem uri = c.uri_for('/job' project.name jobset.name job.name 'channel' 'latest') title = "Channel" %]
    [17.281]
    [17.14414]
    [% INCLUDE menuItem uri = c.uri_for('/job' project.name jobset.name job 'channel' 'latest') title = "Channel" %]
  • edit in src/script/hydra-eval-jobset at line 350
    [17.768][14.365:365]()
  • edit in src/script/hydra-eval-jobset at line 405
    [17.1110][17.0:210](),[17.13396][17.0:210](),[17.210][17.13469:13470](),[17.13469][17.13469:13470]()
    my $job = $jobset->jobs->update_or_create({
    name => $jobName,
    jobset_id => $jobset->id,
    project => $jobset->project,
    jobset => $jobset->name,
    });
  • replacement in src/script/hydra-eval-jobset at line 448
    [17.15673][17.15673:15712]()
    $build = $job->builds->create(
    [17.15673]
    [17.15712]
    $build = $jobset->builds->create(
  • edit in src/script/hydra-eval-jobset at line 453
    [11.119]
    [17.15745]
    , job => $jobName
  • edit in src/sql/hydra.sql at line 134
    [17.6811][17.6811:6902](),[17.6902][17.308:344](),[17.344][17.6902:6935](),[17.1317][17.6902:6935](),[17.6902][17.6902:6935](),[17.7063][17.7063:7064](),[17.7273][17.7273:7316](),[17.7316][17.1318:1390](),[17.1390][17.7316:7513](),[17.7316][17.7316:7513]()
    );
    create table Jobs (
    project text not null,
    jobset text not null,
    jobset_id integer not null,
    name text not null,
    primary key (project, jobset, name),
    foreign key (jobset_id) references Jobsets(id) on delete cascade,
    foreign key (project) references Projects(name) on delete cascade on update cascade,
    foreign key (project, jobset) references Jobsets(project, name) on delete cascade on update cascade
  • replacement in src/sql/hydra.sql at line 216
    [17.1602][17.1602:1785]()
    foreign key (project, jobset) references Jobsets(project, name) on update cascade,
    foreign key (project, jobset, job) references Jobs(project, jobset, name) on update cascade
    [17.1602]
    [17.2526]
    foreign key (project, jobset) references Jobsets(project, name) on update cascade
  • replacement in src/sql/hydra.sql at line 360
    [17.9910][17.9910:10097]()
    foreign key (project, jobset) references Jobsets(project, name) on update cascade,
    foreign key (project, jobset, job) references Jobs(project, jobset, name) on update cascade
    [17.9910]
    [17.10097]
    foreign key (project, jobset) references Jobsets(project, name) on update cascade
  • replacement in src/sql/hydra.sql at line 533
    [17.8275][17.8275:8498]()
    foreign key (project, jobset) references Jobsets(project, name) on update cascade on delete cascade,
    foreign key (project, jobset, job) references Jobs(project, jobset, name) on update cascade on delete cascade
    [17.8275]
    [17.4069]
    foreign key (project, jobset) references Jobsets(project, name) on update cascade on delete cascade
  • edit in src/sql/update-dbix.pl at line 25
    [17.10537][17.10537:10567]()
    "jobs" => "Jobs",
  • file addition: upgrade-67.sql (----------)
    [17.3004]
    alter table Builds drop constraint builds_project_fkey2;
    alter table BuildMetrics drop constraint buildmetrics_project_fkey2;
    alter table StarredJobs drop constraint starredjobs_project_fkey2;
    drop table Jobs;
  • replacement in tests/evaluation-tests.pl at line 28
    [17.906][17.0:103]()
    ok(runBuild($build), "Build '".$build->job->name."' from jobs/basic.nix should exit with code 0");
    [17.906]
    [17.103]
    ok(runBuild($build), "Build '".$build->job."' from jobs/basic.nix should exit with code 0");
  • replacement in tests/evaluation-tests.pl at line 30
    [17.166][17.1859:1957](),[17.1957][17.223:383](),[17.223][17.223:383]()
    my $expected = $build->job->name eq "fails" ? 1 : $build->job->name =~ /with_failed/ ? 6 : 0;
    ok($newbuild->finished == 1 && $newbuild->buildstatus == $expected, "Build '".$build->job->name."' from jobs/basic.nix should have buildstatus $expected");
    [17.166]
    [17.1270]
    my $expected = $build->job eq "fails" ? 1 : $build->job =~ /with_failed/ ? 6 : 0;
    ok($newbuild->finished == 1 && $newbuild->buildstatus == $expected, "Build '".$build->job."' from jobs/basic.nix should have buildstatus $expected");
  • replacement in tests/evaluation-tests.pl at line 40
    [17.245][17.384:487]()
    ok(runBuild($build), "Build '".$build->job->name."' from jobs/basic.nix should exit with code 0");
    [17.245]
    [17.487]
    ok(runBuild($build), "Build '".$build->job."' from jobs/basic.nix should exit with code 0");
  • replacement in tests/evaluation-tests.pl at line 42
    [17.550][17.550:694]()
    ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job->name."' from jobs/basic.nix should have buildstatus 0");
    [17.550]
    [17.538]
    ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job."' from jobs/basic.nix should have buildstatus 0");
  • replacement in tests/evaluation-tests.pl at line 48
    [17.887][17.695:798]()
    ok(runBuild($build), "Build '".$build->job->name."' from jobs/basic.nix should exit with code 0");
    [17.887]
    [17.798]
    ok(runBuild($build), "Build '".$build->job."' from jobs/basic.nix should exit with code 0");
  • replacement in tests/evaluation-tests.pl at line 50
    [17.861][17.861:1005]()
    ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job->name."' from jobs/basic.nix should have buildstatus 0");
    [17.861]
    [17.1180]
    ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job."' from jobs/basic.nix should have buildstatus 0");
  • replacement in tests/evaluation-tests.pl at line 161
    [17.584][17.584:696]()
    ok(runBuild($build), "Build '".$build->job->name."' from jobs/build-products.nix should exit with code 0");
    [17.584]
    [17.696]
    ok(runBuild($build), "Build '".$build->job."' from jobs/build-products.nix should exit with code 0");
  • replacement in tests/evaluation-tests.pl at line 163
    [17.759][17.759:917]()
    ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job->name."' from jobs/build-products.nix should have buildstatus 0");
    [17.759]
    [17.917]
    ok($newbuild->finished == 1 && $newbuild->buildstatus == 0, "Build '".$build->job."' from jobs/build-products.nix should have buildstatus 0");
  • replacement in tests/evaluation-tests.pl at line 167
    [17.1052][17.1052:1097]()
    if($build->job->name eq "simple") {
    [17.1052]
    [17.1097]
    if($build->job eq "simple") {
  • replacement in tests/evaluation-tests.pl at line 170
    [17.1209][17.1209:1260]()
    } elsif ($build->job->name eq "with_spaces") {
    [17.1209]
    [17.1260]
    } elsif ($build->job eq "with_spaces") {