Commit graph

41 commits

Author SHA1 Message Date
Eelco Dolstra 0ec03aa0f4 Handle builds with multiple outputs correctly in Hydra channels 2013-10-07 17:06:17 +02:00
Eelco Dolstra c7a039bd05 Remove the Errors page
The same info is readily available under the most recent jobset eval
page.
2013-10-03 15:00:28 +02:00
Eelco Dolstra 64d617a6b2 Remove already disabled jobstatus code 2013-10-03 14:56:07 +02:00
Eelco Dolstra 58a6fdc5ed Remove the job status pages
They're mostly redundant since there is a faster "jobs" tab on
the jobset pages now.  The only thing the latter lacks is the
ability to see status change times, but those are quite expensive
to compute, and are visible on build pages if you really need them.
2013-08-28 17:40:51 +02:00
Eelco Dolstra bef263c930 Add a ‘latest-finished’ action
It redirects to the latest successful build from a finished
evaluation.  This is mostly useful for the Nixpkgs/NixOS mirroring
script, which need the latest finished evaluation in which some
aggregate job (such as ‘tested’ in NixOS) succeeded.
2013-08-12 22:17:04 +02:00
Eelco Dolstra 452c8e36d1 Materialize the number of finished builds
The NrBuilds table tracks the value of ‘select count(*) from Builds
where finished = 0’, keeping it up to date via a trigger.  This is
necessary to make the /all page fast, since otherwise it needs to do a
sequential scan on the Builds table.
2013-08-12 20:19:10 +02:00
Shea Levy 002ac9ef63 Merge in the first bits of the API work
The catalyst-action-rest branch from shlevy/hydra was an exploration of
using Catalyst::Action::REST to create a JSON API for hydra. This commit
merges in the best bits from that experiment, with the goal that further
API endpoints can be added incrementally.

In addition to migrating more endpoints, there is potential for
improvement in what's already been done:
* The web interface can be updated to use the same non-GET endpoints as
  the JSON interface (using x-tunneled-method) instead of having a
  separate endpoint
* The web rendering should use the $c->stash->{resource} data structure
  where applicable rather than putting the same data in two places in
  the stash
* Which columns to render for each endpoint is a completely debatable
  question
* Hydra::Component::ToJSON should turn has_many relations that have
  strings as their primary keys into objects instead of arrays

Fixes NixOS/hydra#98

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-07-02 14:00:46 -04:00
Eelco Dolstra 5e5b344527 Make latest/latest-for more efficient
Getting all matching rows from the database is expensive.
2013-05-23 12:18:38 -04:00
Eelco Dolstra 57b2bb0674 Let Builds.timestamp refer to the time the build was added
Previously, for scheduled builds, "timestamp" contained the time the
build was added to the queue, while for finished builds, it was the
time the build finished.  Now it's always the former.
2013-05-23 10:45:49 -04:00
Eelco Dolstra 4e67665b7f Builds page: Remove redundant tab titles 2013-02-14 13:23:54 +01:00
Eelco Dolstra 10882a1ffd Add multiple output support
This requires turning the outPath columns in the Builds and BuildSteps
tables into separate tables, and so requires a schema upgrade.
2013-02-13 16:49:28 +00:00
Eelco Dolstra 67aefde62c Remove trailing whitespace 2013-01-22 14:41:02 +01:00
Eelco Dolstra aa28ffe3a8 Die tabs die 2013-01-22 14:09:37 +01:00
Eelco Dolstra 662cdf0421 Add support for viewing jobset evaluations 2012-04-02 16:11:22 +02:00
Eelco Dolstra 2d1cf73974 Speed up channel processing
In particular the /pkg action is now O(lg n) instead of O(n) in the
number of packages in the channel, and listing the channel contents
no longer requires calling isValidPath() on all packages.

Derivations (and thus build time dependencies) are no longer included
in the channel, because they're not GC roots.  Thus they could
disappear unexpectedly.
2012-03-12 20:47:30 +01:00
Eelco Dolstra 07b3dffd20 Reduce I/O in build listings by only fetching required columns
Columns such as "longDescription" can be large, so fetching them
when they're not needed is wasteful.
2012-03-12 20:47:30 +01:00
Eelco Dolstra 68a867da67 Merge the BuildResultInfo table into the Builds table 2012-03-12 20:47:29 +01:00
Eelco Dolstra c8d572a0dc Remove the "all" channel
The "all" channel fundamentally doesn't scale, because it needs
to fetch N builds from the database (where N is potentially a very
large number), then check whether they are still valid.  And it's
not very useful anyway.
2011-11-30 12:07:47 +01:00
Eelco Dolstra 69e9a91bcb Fix a huge performance regression in the jobstatus page
The renderBuildStatusIcon function was looking at the
resultInfo and schedulingInfo of each build, causing
a SQL query for every build in the result.
2011-11-29 19:55:49 +01:00
Rob Vermaas 822ca9c29e hydra: in jobstatus pages, allow maintainer query argument to show only the packages you are maintaining 2010-09-08 06:37:19 +00:00
Eelco Dolstra 6dd53655a5 * Omitting the template name doesn't work everywhere. 2010-02-09 15:51:33 +00:00
Eelco Dolstra 6c35801173 * Shut up a harmless warning about an uninitialised variable. 2010-02-09 14:10:16 +00:00
Eelco Dolstra 9409d20f39 * Make the "all" page faster by not doing four identical `select
count(*) ...' queries.  The reason for this is that

    my $nrBuilds = scalar($c->stash->{allBuilds}->search({finished => 1}));

  doesn't return an integer, but some magical code reference that when
  evaluated performs the query and returns an integer.  So every use
  of $nrBuilds in all.tt caused another query.  OTOH using ...->count
  causes only one query.

  However count(*) still involves a full table scan, so it's still
  suboptimal.
2010-02-09 14:08:45 +00:00
Eelco Dolstra a22946abe7 * When a store path has disappeared for some reason,
../nix/<storepath> should return a HTTP error.  Otherwise,
  mirror-channel.pl will happily mirror the error page.
2010-02-05 20:08:41 +00:00
Rob Vermaas 67f468e0a3 - adapted ui for hydra, more in line with nixos.org website 2010-01-07 14:25:12 +00:00
Eelco Dolstra dd12113eb2 * Pass the page number in the URI query string. 2009-10-15 12:59:55 +00:00
Eelco Dolstra 16f2d003b2 * In the last succeeded / job status queries, use the Builds.isCurrent
column instead of Jobs.active.
2009-10-07 15:45:17 +00:00
Eelco Dolstra 05c7989c3e * Don't show platforms that are not included in the current jobset. 2009-10-02 17:11:28 +00:00
Eelco Dolstra b1289533e6 * More database hackery. 2009-07-09 15:26:55 +00:00
Eelco Dolstra fa364fa333 * PostgreSQL compatibility. 2009-07-09 15:08:39 +00:00
Eelco Dolstra 1aec78014d * In the job status and error pages, show when the status of a job
last changed.
2009-07-09 14:48:15 +00:00
Eelco Dolstra 469893cd4a * The "latest" channel shouldn't contain inactive jobs. 2009-04-25 11:41:46 +00:00
Eelco Dolstra d6bd9bab5f * Job status / error pages: show only active jobs. 2009-04-15 14:50:15 +00:00
Eelco Dolstra 28fde34b9c 2009-04-09 15:09:00 +00:00
Eelco Dolstra 607d5641b6 * Added a page to quickly see all failed builds and failed evaluations
per project or jobset or job or globally.
2009-04-08 22:08:00 +00:00
Eelco Dolstra 26ff5f1ff0 * Provide some redirects to build products by type so that we can for
example link to the latest tarball through a URI like:

    http://server/job/patchelf/trunk/tarball/latest/download-by-type/file/source-dist
2009-04-08 08:09:39 +00:00
Eelco Dolstra f9572e4d1e * Provide some redirects to the latest successful build for a job (or
project, or jobset, or globally, but that's not all that useful).
  This is useful if you want to link to the latest build.
2009-04-07 15:49:02 +00:00
Eelco Dolstra 16a84f4bf5 * Big speed-up of the job status page and the channel generation (such
as the manifest).  The builds are now determined in one SQL query
  rather than a zillion ones.
2009-04-03 15:37:21 +00:00
Eelco Dolstra 12c1d90135 * Add some DB indices to make the /releases page much faster.
* Reduce the number of DB queries for the /all and /jobstatus pages.
* Show the Hydra version number.
2009-03-23 13:52:24 +00:00
Eelco Dolstra 7c7c43335d * Job status: show the active jobs. 2009-03-13 17:32:08 +00:00
Eelco Dolstra 97ed2052ba * Move everything up one directory. 2009-03-05 13:41:57 +00:00
Renamed from src/Hydra/lib/Hydra/Base/Controller/ListBuilds.pm (Browse further)