Commit graph

303 commits

Author SHA1 Message Date
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 aaacf9eda3 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
Eelco Dolstra
68a867da67 Merge the BuildResultInfo table into the Builds table 2012-03-12 20:47:29 +01:00
Eelco Dolstra
25334715f8 Merge the BuildSchedulingInfo table into the Builds table
This simplifies the code and improves performance since it reduces
the number of joins.
2012-03-12 20:47:29 +01:00
Eelco Dolstra
b13664308c Whitespace 2012-02-28 15:27:44 +01:00
Eelco Dolstra
3d824b3a3a Indentation 2012-02-21 17:59:36 +01:00
Eelco Dolstra
578530dac2 Don't show duplicate builds in "Related builds"
Since a build may be a member of multiple jobset evaluations, we need
to do a "select distinct" here.  But maybe we should only show builds
from a single evaluation (e.g. the most recent), since showing builds
from several may be confusing.
2012-02-21 17:16:32 +01:00
Rob Vermaas
2cf9b148eb 50 for related builds might be a kind of low, will start with 100 2012-02-16 17:00:59 +01:00
Rob Vermaas
924d94cafd * minor performance tweaks
* added related builds tab which show related builds (builds that are in same evaluations), shows max 50
2012-02-16 16:56:01 +01:00
Rob Vermaas
355135b6e8 add links in admin page to clear queue (all non-running builds, and all non-running old (non-current) builds) 2012-02-16 15:31:12 +01:00
Rob Vermaas
8d78a688c7 is not in hydra-server's scope 2012-01-28 21:03:44 +01:00
Rob Vermaas
1c0cd99c3e remove old line 2012-01-28 20:55:33 +01:00
Rob Vermaas
fded9e62af logdiff now support bzipped logs for logdiff 2012-01-28 20:47:01 +01:00
Rob Vermaas
ae491f7223 use base_uri config in password reset email 2012-01-28 07:18:10 +01:00
Rob Vermaas
01f07be8f2 fix; resetting password used to send email to logged in user (typically admin), now to the user whose password is resetted 2012-01-28 07:14:40 +01:00
Ludovic Courtès
6c4e83d454 More command renaming. 2011-12-02 15:58:26 +01:00
Rob Vermaas
41cd5d2838 fix missing import of Nix::Store for isValidPath 2011-12-01 20:46:02 -05:00
Rob Vermaas
787ed37cb3 git branches can share local clones 2011-11-30 11:40:35 -05:00
Eelco Dolstra
c613b885f2 Use the new Nix Perl bindings 2011-11-30 15:25:28 +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
Eelco Dolstra
3b550a8086 Minor style changes 2011-11-29 18:08:23 +01:00
Rob Vermaas
f4204df39a always show latest 10 builds on job page 2011-11-16 10:36:18 -05:00
Rob Vermaas
1395717245 recognize tgz in build products contents page 2011-11-16 10:32:32 -05:00
Rob Vermaas
d14f7c7720 fix mercurial diffs, should change to cloned repo first 2011-11-01 21:36:46 -04:00
Rob Vermaas
13df3e4191 fix nrbuilds query 2011-11-01 21:35:02 -04:00
Rob Vermaas
9ce95d31f1 change content type of logdiff to ->response->content_type('application/json'); 2011-10-12 13:36:20 +00:00
Ludovic Courtès
c329bece61 Handle xz-compressed files. 2011-10-10 21:00:54 +00:00
Rob Vermaas
6d81bafae4 check for revisions 2011-10-05 19:08:45 +00:00
Rob Vermaas
52c2b31711 no branch info available yet in scmdiff, so disable for now 2011-10-05 18:45:19 +00:00
Rob Vermaas
998665aa0f add log diff to compare logs to previous builds 2011-09-26 14:47:55 +00:00
Rob Vermaas
ef802279ed use build timestamp as last-modified header on download 2011-09-15 15:22:00 +00:00
Eelco Dolstra
d8a7ca67f4 * Start of a JSON API to get information about a specific build.
E.g. http://server/build/1341335/api/get-info returns a JSON 
  record containing information about the build.
2011-09-15 08:27:17 +00:00
Rob Vermaas
203716597d set threshold to show status on jobset page to a more usable size 2011-08-29 17:56:38 +00:00
Rob Vermaas
5d3f5f9fca hydra: when no external url is given for diff's of git/hg input, revert to a diff done on a local available clone 2011-08-25 14:50:31 +00:00
Eelco Dolstra
c51af99ecf * Catalyst now escapes slashes to %2f, which broke defaultUriForProduct. 2011-08-19 16:23:01 +00:00
Eelco Dolstra
3d6a8fa632 * Slight cleanup. 2011-08-16 14:51:19 +00:00
Rob Vermaas
8101874b83 grr, typo 2011-07-18 15:03:15 +00:00
Rob Vermaas
360b4a74bf remove buildonlylatest propery, which was committed by accident 2011-07-17 12:02:20 +00:00
Rob Vermaas
07f1d85518 remove unintentional committed line 2011-06-10 12:56:49 +00:00
Rob Vermaas
5d166150f9 using backquote as argument resulted in only first line as first argument to removeAsciiEscapes 2011-06-10 10:48:51 +00:00
Rob Vermaas
48b435c2de remove ascii escapes from log in tail page and emails 2011-06-10 09:53:15 +00:00
Rob Vermaas
259d163ec9 clean up build page for build that failed with result 2011-06-10 07:36:30 +00:00
Rob Vermaas
c4130a8161 Hydra/64: Leaving number of builds empty gives DBIx error 2011-05-16 08:03:06 +00:00
Rob Vermaas
2f215aac4b add tracker html code via HYDRA_TRACKER 2011-04-19 12:00:54 +00:00
Rob Vermaas
a8b3ebd514 make logo configurable via HYDRA_LOGO env var 2011-04-18 08:21:27 +00:00
Rob Vermaas
fca3019c7b qualify ordery_by clauses when necessary, remove unnecessary order_by's, reported by Ludo, resulted in errors in sqlite 2011-04-01 07:40:06 +00:00
Rob Vermaas
f3f2c5683f Hydra/62 fix, broken nar download 2011-03-23 13:03:40 +00:00
Rob Vermaas
8f35d03bca use NIX_*_DIR env vars when defined 2011-03-16 13:08:12 +00:00
Rob Vermaas
413d49342d fixed bug when updating user when no roles were selected, changed change-password link 2011-03-15 14:57:05 +00:00
Rob Vermaas
edbfc781d0 qualify id column 2011-03-15 13:54:43 +00:00
Rob Vermaas
92d547f4e5 do not check username, as you are not allowed to change it 2011-03-08 07:23:28 +00:00
Rob Vermaas
c9929761bd hydra: cannot change username, also update fullname 2011-03-07 16:46:46 +00:00
Rob Vermaas
107a879adc if no emailoverride specified, use empty string 2011-03-07 16:02:23 +00:00
Rob Vermaas
5c187a0640 if no emailoverride specified, use empty string 2011-03-07 15:55:37 +00:00