255 Commits

Author SHA1 Message Date
Eelco Dolstra
486b6037a9 Use $c->config 2013-01-22 14:06:12 +01:00
Eelco Dolstra
64399991a7 Give Hydra binary caches a low priority
We only want to hit a Hydra binary cache if static caches don't
provide a binary.
2012-11-06 17:13:17 +01:00
Ludovic Courtès
f27ae1d566 Add support for Guile & Guix. 2012-10-17 16:23:00 +02:00
Rob Vermaas
c57242c76d Show build status for up to 100 jobs in stead of 50. 2012-09-10 12:15:31 +02:00
Rob Vermaas
396a356198 Add create-user action that was mostly present already. 2012-08-06 00:02:14 +02:00
Eelco Dolstra
aa8bf564e2 Set the Content-Type properly 2012-08-01 18:00:55 +00:00
Eelco Dolstra
13688e364f Add a binary-cache-url file to channels to advertise the binary cache URL 2012-08-01 16:31:25 +00:00
Eelco Dolstra
fad2a084fa Provide the nix-cache-info file required by the binary cache substituter 2012-07-30 20:26:34 +00:00
Eelco Dolstra
67528698e6 Allow creating a release from an evaluation 2012-07-18 23:46:41 +02:00
Eelco Dolstra
da960b507d Use queryPathFromHashPart to look up binary cache requests efficiently 2012-07-18 23:14:17 +02:00
Eelco Dolstra
1b3cf68b77 Generate *.narinfo files on the fly to support the binary cache substituter 2012-07-02 20:09:45 +02:00
Eelco Dolstra
fe2dab6fe8 Fix some warnings about undefined values 2012-07-02 15:18:30 +00:00
Rob Vermaas
a2f56ce574 * Read logs using logContents function in stead of handling it everywhere separately. 2012-06-26 12:00:18 +02:00
Rob Vermaas
2aa52131ac * Nix now stores logs by default as bzip2, make sure the build page uncompresses before showing. 2012-06-25 15:05:16 +02:00
Rob Vermaas
75277311ac Different icons (darker red) for cancelled builds. Fixes #25. 2012-05-25 04:14:36 +02:00
Rob Vermaas
df71a86183 Do not delete builds when clearing the queue. Fixes #8. 2012-04-30 22:13:53 +02:00
Eelco Dolstra
51b920c875 Bootstrapify the Hydra forms (except the project and jobset edit pages)
Plus lots of other tweaks.
2012-04-17 16:53:11 +02:00
Eelco Dolstra
896a47d950 Clear nrSucceeded when restarting a build 2012-04-17 09:34:35 +00:00
Eelco Dolstra
d350b935f2 Add validation for project and jobset names 2012-04-17 08:53:00 +00:00
Rob Vermaas
922bad7306 Also remove dep. graph from robots.txt. 2012-04-16 15:25:14 +02:00
Rob Vermaas
334135448e Remove buildtime and runtime dependency graph. It is useless on normal derivations. 2012-04-16 15:23:07 +02:00
Eelco Dolstra
ec87ad2bf2 Missing part of aaacf9eda36f5cdcc77cec20d6f49fbb6f925105 2012-04-15 22:57:10 +00:00
Eelco Dolstra
034d50069b Speed up the jobset eval list a bit 2012-04-15 22:11:20 +00:00
Eelco Dolstra
573a333bc9 Cleanup 2012-04-15 21:49:54 +00:00
Eelco Dolstra
5793baa3cd Doh 2012-04-15 21:35:46 +00:00
Eelco Dolstra
0daba6bb89 In the jobset evals lists, show what inputs changed between consecutive evals 2012-04-15 20:06:42 +00:00
Eelco Dolstra
b9824ca422 Cleanup 2012-04-15 18:47:22 +00:00
Rob Vermaas
bb4f470348 Remove default logo, replaced by text for now. Hide template in jobset edit. 2012-04-13 11:47:05 +02:00
Rob Vermaas
f63e9a63b4 Replace last 5 builds on jobset page with last 5 evaluations. Moved hide/unhide and evaluate options to jobset topmenu. 2012-04-13 11:26:37 +02:00
Rob Vermaas
b81aa89260 Replace old logo with Nix/NixOS logo. 2012-04-13 10:33:11 +02:00
Rob Vermaas
9a1f38e06e Remove comments, re-add logo. 2012-04-13 10:05:02 +02:00
Eelco Dolstra
e9dd3158a0 Propagate URI parameters
This allows URIs like

  http://hydra.nixos.org/jobset/nixpkgs/trunk/latest-eval?compare=stdenv

to do the right thing.
2012-04-04 12:56:49 +02:00
Eelco Dolstra
f52ca0c588 Add a redirect to the latest view result for which the underlying evaluation has finished completely
This will be useful for the Nixpkgs channel mirror script:

  http://hydra.nixos.org/view/nixpkgs/unstable/latest-finished/channel

is the channel containing the latest, consistent, tested set of builds.
2012-04-03 17:45:03 +02:00
Eelco Dolstra
bd93ca9316 Add a redirect to the evaluation page of a view result
E.g.

  http://hydra.nixos.org/view/nixpkgs/unstable/latest/eval

Thus this is the channel representing the latest Nixpkgs for which the
elements of the view "unstable" succeeded:

  http://hydra.nixos.org/view/nixpkgs/unstable/latest/eval/channel
2012-04-03 15:45:48 +02:00
Eelco Dolstra
30e2b9046a Cleanup 2012-04-03 11:28:59 +02:00
Eelco Dolstra
db2b2b6134 Add a redirect to the latest finished jobset evaluation
The action .../jobset/<project>/<jobset>/latest-eval redirects to the
latest evaluation of the jobset that has no unfinished builds.  Thus,
for instance,

  http://hydra.nixos.org/jobset/nixpkgs/trunk/latest-eval/channel

is the channel containing the latest consistent set of Nixpkgs builds.
2012-04-03 01:30:54 +02:00
Eelco Dolstra
262f068e26 Support obtaining the contents of an evaluation as a channel
E.g. http://hydra.nixos.org/eval/552513/channel

The advantage of such a channel is that all builds come from the same
evaluation, and thus are consistent.
2012-04-02 23:27:17 +02:00
Eelco Dolstra
69e600da89 Allow comparing an evaluation with an arbitrary other evaluation
The URI parameter "compare=..." can denote either an arbitrary
evaluation ID, or the name of a jobset in the same project.  In the
latter case, the comparison is made against the latest completed
evaluation of the specified jobset.
2012-04-02 20:40:59 +02:00
Eelco Dolstra
2f9153c640 Prevent multiple builds with the same (job, outPath) tuple from being added
This happened in a pathological case in Nixpkgs: the "grub" job is
evaluated for i686-linux and x86_64-linux, but in the latter case it
returns the same derivation as in the former case.  So only one build
should be added.
2012-04-02 15:56:29 +00:00
Eelco Dolstra
9d4cb29e08 Show queued builds in jobset evaluation pages 2012-04-02 15:23:42 +00:00
Eelco Dolstra
427e5e8db8 Show new and removed jobs 2012-04-02 16:45:05 +02:00
Eelco Dolstra
662cdf0421 Add support for viewing jobset evaluations 2012-04-02 16:11:22 +02:00
Ludovic Courtès
3846c2407d Fix URL in the "password changed" email. 2012-03-13 18:30:57 +01:00
Eelco Dolstra
27619f18e2 Re-enable the "Related Builds" tab
However, there is a "limit 1" on the JobsetEval search to prevent a
sequential scan of the Builds table.
2012-03-12 20:47:30 +01:00
Eelco Dolstra
abe71a767b Disable prepared statements completely
Because of the way DBIx::Class does prepared statements, even
innocuous queries such

  $c->model('DB::Builds)->search({finished => 0})

can be extremely slow.  This is because DBIx::Class prepares a
PostgreSQL statement

  select ... from Builds where finished = ?

and since Builds is very large and there is a large fraction of rows
with "finished = 1", the PostgreSQL query planner decides to implement
this query with a sequential scan of the Builds table (despite the
existence of an index on "finished"), which is extremely slow.  It
would be nice if we could tell DBIx::Class that constants should be
part of the prepared statement, i.e.

  select ... from Builds where finished = 0

but AFAIK we can't.
2012-03-12 20:47:30 +01: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
9f10c0f9c0 Fix a reference to BuildResultInfo 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
47f877c5bb Evaluator cleanups
* Don't use isCurrent anymore; instead look up builds in the previous
  jobset evaluation.  (The isCurrent field is still maintained because
  it's still used in some other places.)

* To determine whether to perform an evaluation, compare the hash of
  the current inputs with the inputs of the previous jobset
  evaluation, rather than checking if there was ever an evaluation
  with those inputs.  This way, if the inputs of an evaluation change
  back to a previous state, we get a new jobset evaluation in the
  database (and thus the latest jobset evaluation correctly represents
  the latest state of the jobset).

* Improve performance by removing some unnecessary operations and
  adding an index.
2012-03-12 20:47:29 +01:00
Eelco Dolstra
8d65ab6158 Don't use a prepared statement for the active build steps query
Prepared statements are sometimes much slower than unprepared
statements, because the planner doesn't have access to the query
parameters.  This is the case for the active build steps query (in
/status), where a prepared statement is three orders of magnitude
slower.  So disable the use of prepared statements in this case.

(Since the query parameters are constant here, it would be nicer if we
could tell DBIx::Class to prepare a statement with those parameters
fixed.  But I don't know an easy way to do so.)
2012-03-12 20:47:29 +01:00