Commit graph

577 commits

Author SHA1 Message Date
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
Eelco Dolstra fd50ac1d4e Store the inputs of each evaluation in the database
Achtung: this requires a schema upgrade via "hydra-init".
2012-04-15 18:36:36 +00:00
Eelco Dolstra 794602d7ce Drop unused "tag" column
It was intended for CVS inputs but never used.
2012-04-15 12:42:46 +00:00
Nicolas Pierron 19d9955e89 Optimize fetch-git. 2012-04-14 18:17:35 -07:00
Rob Vermaas 516a644a7f Merge branch 'master' into bootstrap 2012-04-13 11:55:49 +02: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
Ludovic Courtès 6e62d9b7b5 Allow use of a single Git clone for several branches.
This reinstates commit 53329ecc61, but
uses "git pull --all", instead of "git fetch --all", so that local
tracking branches get updated too.
2012-04-12 16:55:33 +02:00
Rob Vermaas ed23a6e6d3 Add branch to local clone path of git repositories for now. 2012-04-10 10:06:12 +02:00
Rob Vermaas 79211d5efe Revert "Use git fetch --all to update local clone in stead of git pull. Also, do not use --branch in initial clone."
This reverts commit 53329ecc61.
2012-04-10 10:04:22 +02:00
Rob Vermaas 53329ecc61 Use git fetch --all to update local clone in stead of git pull. Also, do not use --branch in initial clone. 2012-04-05 15:49:48 +02:00
Eelco Dolstra 8b88ce19c2 Huuuge speedup in the Hydra evaluator
The check to see whether a build had been scheduled in a previous
evaluation took about 200 ms for the nixpkgs:trunk jobset.  Given
that it has more than 15000 builds, this added up to a lot.  Now
it takes 0.2 ms per build.
2012-04-04 17:29:03 +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 2c677ec71a Always record inputs passed through -I in the BuildInputs table
We currently have no way to determine if the Nix evaluator used a
specific -I input, so we need to record all of them as inputs.
2012-04-03 10:10:45 +00: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
Eelco Dolstra e1768cae86 Don't barf if the SQLite DB is missing
This prevented hydra-init from starting.
2012-03-19 03:57:11 +00:00
Ludovic Courtès 3846c2407d Fix URL in the "password changed" email. 2012-03-13 18:30:57 +01:00
Eelco Dolstra 161d7418f8 Doh 2012-03-13 13:30:41 +01:00
Eelco Dolstra 1f268d2d43 Update isCurrent properly 2012-03-13 13:09:10 +01:00
Eelco Dolstra 179b012a8e Open the DB using Hydra::Model::DB->new
This gets rid of the openHydraDB function and ensures that we
open the database in a consistent way.

Also drop the PostgreSQL sequence hacks.  They don't seem to be
necessary anymore.
2012-03-13 12:10:19 +01:00
Eelco Dolstra 87e4d43848 Fix the jobset unchanged check
When checking whether the jobset is unchanged, we need to compare with
the previous JobsetEval regardless of whether it had new builds.
Otherwise we'll keep adding new JobsetEval rows.
2012-03-12 20:47:30 +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 541238030d Provide a command ‘hydra-init’ to initialise/upgrade the database
For schema upgrades, hydra-init executes the files
src/sql/upgrade-<N>.sql, each of which upgrades the schema from
version N-1 to N.  The upgrades are wrapped in a transaction.
2012-02-28 20:16:16 +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
Rob Vermaas 9b4f09ba83 allow dots (.) in job names when used as build input 2012-01-06 23:04:48 +01:00
Eelco Dolstra 9fe8c43437 Pass the abbreviated Git revision
The abbreviated Git revision hash (e.g. "267480b") is typically
contained in ‘gitTag’ as well, but the latter can contain other
elements as well, e.g., the delta to the closest tag.  That may
be undesirable in version strings, so this is an alternative.
2011-12-06 23:04:15 +01:00
Eelco Dolstra b1da85140d Fix sysbuild input type handling 2011-12-05 17:13:20 +01:00
Eelco Dolstra e9c88783ce Pass additional attributes for Git inputs
The ‘revCount’ attribute is the number of commits in the history
of the revision.  This is useful if you need a monotonically
increasing version number.

The ‘gitTag’ attribute is the output of ‘git describe’, e.g.
‘v1.0.4-14-g2414721’ to indicate that the current revision is 14
commits after the tag ‘v1.0.4’.
2011-12-05 15:13:31 +01:00
Eelco Dolstra 9032c55aa6 Keep track of the database schema version
The singleton table SchemaVersion contains the current version
of the Hydra database schema.  This can be used to upgrade the
schema on the fly.

Also reran the DBIx::Class schema loader.
2011-12-05 14:29:29 +01:00
Eelco Dolstra 3b9a62c964 Pass inputs to release expressions using -I
This means that you can now write (for instance)

  with <nixpkgs> { ... };

in release.nix, rather than

  { nixpkgs } :

  with nixpkgs { ... };
2011-12-05 13:08:43 +01:00
Eelco Dolstra 9d4b2253ea Add missing / 2011-12-04 22:53:07 +01:00
Eelco Dolstra 52406e108b Handle missing "build" inputs 2011-12-04 22:36:55 +01:00
Eelco Dolstra 65ea71578f Cleanup
Don't propagate $type unnecessarily.
2011-12-04 22:18:23 +01:00
Eelco Dolstra 6c3f878026 Die TABs die 2011-12-04 22:05:43 +01:00
Eelco Dolstra 29846d7f2f Do incremental SVN checkouts
In hydra-evaluator, reuse an SVN working copy between runs (similar to
what we do with Git and other input types).  This reduces network
traffic in the common case.

Also, don't use nix-prefetch-svn.  It doesn't do anything useful.
2011-12-04 22:05:43 +01:00
Eelco Dolstra 692a11fd3b Indentation 2011-12-04 22:05:43 +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
Eelco Dolstra be1935f66a Rename hydra_eval_jobs to hydra-eval-jobs 2011-11-30 18:14:48 +01:00
Eelco Dolstra 92536c2e3c Random indentation fix 2011-11-30 18:14:48 +01: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 5333c67bf9 Prevent an unnecessary SQL query for every package in the NixExprs view 2011-11-30 14:27:46 +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
Eelco Dolstra eca51da45c Print out an Apache-style access log 2011-11-29 18:09:46 +01:00
Eelco Dolstra 3b550a8086 Minor style changes 2011-11-29 18:08:23 +01:00
Eelco Dolstra 3685ffd464 Whitespace 2011-11-29 15:57:47 +01:00
Eelco Dolstra ee67821d1f Disable Catalyst's Debug flag
It can be re-enabled by setting $HYDRA_DEBUG to 1.
2011-11-25 16:44:18 +01:00
Eelco Dolstra ec32e833e6 Install the file in the Hydra/Script directory 2011-11-22 17:34:23 +01:00
Eelco Dolstra 109e5807c2 Use CatalystX::Script::Server::Starman
This allows us to pass --max_server and similar options
to raise the number of workers from the default (5).
2011-11-22 16:44:32 +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 6ca9501632 make default branch default, remove quotes 2011-10-04 22:29:36 +00:00
Rob Vermaas 9374cfcb34 add support for mercurial tags/revs 2011-10-04 20:03:43 +00:00
Ludovic Courtès 96b4db1e99 Allow Subversion inputs to specify a revision number. 2011-10-04 16:15:22 +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 5e359374a1 * Fix indentation. 2011-08-19 15:13:34 +00:00
Eelco Dolstra 3d6a8fa632 * Slight cleanup. 2011-08-16 14:51:19 +00:00
Rob Vermaas b75ddbc11c allow _'s in first character of filenames 2011-07-25 23:19:24 +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 3824aeaab8 change regexp for ascii escapes in log 2011-06-10 10:53:59 +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
Eelco Dolstra adbba3bbcb * me.id -> build.id. 2011-04-20 08:57:55 +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 d4c96a47c9 qualify order by column 2011-04-18 08:10:10 +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
Ludovic Courtès 7b1d87fde9 fetchInputGit: Populate TopGit branches when on a topic branch. 2011-03-22 22:21:19 +00:00
Rob Vermaas 1df83d52f8 fix bug reported by ludo (log in, non-admin) on project overview page 2011-03-22 08:51:15 +00:00
Rob Vermaas d719b0480f hydra: run nix-prefetch-git on local clone of git repo 2011-03-16 16:03:01 +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 53c48e4d7d qualify id column in queries 2011-03-14 14:05:32 +00:00
Ludovic Courtès f57f91f9ff Change fetchInputGit' to do git clone -b BRANCH' instead of `git clone'.
Suggested by Vladimír Čunát <vcunat@gmail.com>.
2011-03-10 15:06:54 +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
Rob Vermaas 586f131ebd use HYDRA_DATA/hydra.conf as default location for hydra.conf 2011-03-07 15:06:32 +00:00
Rob Vermaas f95ded45a5 revert commit 26130, use hardcoded default value for HYDRA_DATA (/var/lib/hydra) 2011-03-07 12:30:27 +00:00
Rob Vermaas 0439e7efb7 do not install .in file 2011-03-07 08:04:10 +00:00
Ludovic Courtès bf927b3180 Set a default value for `getHydraPath'. 2011-03-02 15:17:03 +00:00
Rob Vermaas b59ca01e40 pass svn/bzr revisions as integers 2011-02-10 10:35:26 +00:00
Rob Vermaas c2a7de45a5 properly pass bazaar inputs 2011-02-09 12:54:29 +00:00
Eelco Dolstra 2931689dcf * Ran update-dbix. 2011-02-09 10:19:36 +00:00
Rob Vermaas e7c203a3b4 typo 2011-02-08 13:37:50 +00:00
Rob Vermaas c645fa55ff initial bzr support 2011-02-08 13:11:08 +00:00
Rob Vermaas 559ab9c97a automatic reload of tail log when build is running 2011-02-02 09:00:52 +00:00
Rob Vermaas f35c9a4574 hydra: put contents links into html, add links to files from contents page 2011-01-04 12:50:59 +00:00
Rob Vermaas 496c22dc0f hydra: remove old clear eval cache option 2010-12-20 09:53:01 +00:00
Rob Vermaas 6bb569387a hydra: remove debug statement 2010-12-07 13:26:31 +00:00
Rob Vermaas 4fdd011b2d hydra: fixed missing argument to restartbuild function 2010-12-07 13:25:29 +00:00
Rob Vermaas cd7742f610 hydra: added some user admin 2010-12-03 09:40:25 +00:00
Rob Vermaas 6d6f43fa0c hydra: factored out build restart and 2010-12-03 08:40:34 +00:00
Eelco Dolstra a75a12e819 * Include the system type in manifests as a hint for the
binary patch generator.
2010-11-26 14:34:58 +00:00
Eelco Dolstra a93e272364 * Add a NarSize field to Hydra manifests. This allows nix-env
to predict how much disk space a package will require.
* Compute the output / closure size using the info stored in the
  Nix database (rather than doing a slow "du").
2010-11-19 15:44:20 +00:00
Rob Vermaas dcdbb1d814 hydra: store logfile/output path/closure size 2010-11-11 11:03:50 +00:00
Rob Vermaas 0f1c580731 hydra: order machines by enabled/disabled, add green and red color for enabled/disabled 2010-10-21 14:37:03 +00:00
Rob Vermaas 431656546e hydra: disallow robots.txt for root and project all builds page 2010-10-19 08:34:13 +00:00
Rob Vermaas 42750364de hydra: show all running builds on job page, in stead of only showing the 'current' builds that are running 2010-10-18 12:06:59 +00:00
Rob Vermaas df921a4fd0 hydra: add comment that file is generated by hydra to /etc/nix.machines 2010-10-18 11:05:36 +00:00
Rob Vermaas bf9596674a hydra: missing perl modules 2010-10-18 10:18:07 +00:00
Rob Vermaas 766f44517e hydra: missing perl module 2010-10-18 10:03:53 +00:00
Rob Vermaas a391c78aaf hydra: buildmachine disabled by default, add some default constraints 2010-10-13 12:51:29 +00:00
Rob Vermaas ef1efa80e4 hydra: missing property 2010-10-13 12:35:34 +00:00
Rob Vermaas 398993f688 hydra: add some admin for adding/enabling/etc build machines 2010-10-13 12:32:57 +00:00
Rob Vermaas 0491ea3455 hydra: catalyst plain view doesn;t work with data => 0, so put some whitespace around it 2010-10-08 10:45:40 +00:00
Rob Vermaas c37b90ee3e hydra: use autoconf/-make 2010-09-30 14:29:15 +00:00
Rob Vermaas 673ef76020 fix redirect after login 2010-09-29 11:01:48 +00: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
Rob Vermaas 526ffb7eef hydra: missing argument 2010-09-07 15:12:41 +00:00
Rob Vermaas 05ebf34441 hydra: do not use refs/heads while checking for latest commit in branch 2010-09-07 14:56:53 +00:00
Rob Vermaas d3f0c3f67d hydra: export addBuildProducts 2010-09-07 12:31:11 +00:00
Rob Vermaas 38d50806b9 hydra: if evaluator sees cached build, also add the buildproducts 2010-09-07 11:29:52 +00:00
Rob Vermaas 6d74064999 add /status to robots.txt 2010-09-03 09:17:54 +00:00
Rob Vermaas 4c63ccb6bc hydra: moves jobsetOverview sub 2010-09-03 09:17:52 +00:00
Rob Vermaas ce34776992 added some json responses 2010-09-02 12:21:56 +00:00
Rob Vermaas 79168ae722 hydra: missing uses 2010-09-02 09:00:06 +00:00
Rob Vermaas c5ceece093 hydra: moved getbuildlog 2010-09-02 08:56:29 +00:00
Rob Vermaas d7487ab0d9 hydra: at evaluation, check if path is already built, and mark as built in stead of adding to the queue. 2010-09-01 10:50:57 +00:00
Eelco Dolstra fbeb5abc69 2010-08-31 15:37:50 +00:00
Eelco Dolstra 0caf68c638 * Disambiguate. 2010-08-31 15:30:20 +00:00
Eelco Dolstra f6715fa0ef * Added a status page that shows all the currently executing build steps.
* Store the system type in the BuildSteps table.
* Don't query the queue size when serving static pages.  This prevents
  two unnecessary database queries per request.
2010-08-31 15:27:46 +00:00
Eelco Dolstra 2a69745a88 * Store the name of the machine that performed a build step in the
BuildSteps table.
2010-08-31 14:08:59 +00:00
Rob Vermaas c174998a0c hydra: when restarting a build, remove possible failed dependencies from the failed-cache. 2010-08-11 06:43:59 +00:00
Rob Vermaas f7ce960b96 hydra: make sure viewing logs works when logs are bz2'd 2010-08-10 13:11:41 +00:00
Rob Vermaas 9d9bf8b264 hydra: make nr of build to keep configurable per jobset 2010-08-10 06:48:45 +00:00
Rob Vermaas 23886606d0 Hydra/40: Last 5 builds on job page incorrect 2010-08-02 12:32:15 +00:00
Rob Vermaas dda064bc8c hydra: nar was replaced, so also move in robots.txt 2010-07-30 10:17:47 +00:00
Rob Vermaas 0802559b03 hydra: do not perform git clone every time. in stead work on local clone and pull 2010-07-28 12:48:29 +00:00
Rob Vermaas 812689e523 use local clone to limit bandwidth usage 2010-07-27 18:06:47 +00:00
Rob Vermaas 6d028a8d43 missing file 2010-07-27 16:24:21 +00:00
Rob Vermaas 005e088637 missing case for hg input type 2010-07-27 16:17:06 +00:00
Rob Vermaas 125cf1dc5b missing case for hg input type 2010-07-27 16:09:35 +00:00
Rob Vermaas 06e0e80591 bug fix 2010-07-27 11:21:21 +00:00
Rob Vermaas d6131fba50 initial support for mercurial 2010-07-27 11:14:24 +00:00
Rob Vermaas caa0f1a255 Hydra: In case of failure, also show changes between last succesful build and the first failed build after this 2010-07-14 07:31:14 +00:00
Rob Vermaas 33ef55815e Hydra/33: 'Sign in' should return to the referring page 2010-07-06 07:27:55 +00:00
Eelco Dolstra e35f0005e6 * Move NARs from the NixChannel controller to the Root controller and
drop the "/nix/store".  I.e. instead of

    http://hydra.nixos.org/jobset/nixpkgs/trunk/channel/latest/nar/nix/store/99djmii6l4yw9gn07zxqabh8z58pp84c-libmspack-0.0.20040308alpha.drv 

  we now have

    http://hydra.nixos.org/nar/99djmii6l4yw9gn07zxqabh8z58pp84c-libmspack-0.0.20040308alpha.drv 

  The main reason is that this is much faster, since we don't need to
  get all the channel data (which isn't used anyway for NAR
  generation).  This speeds up downloading a NAR from the Nixpkgs
  channel by > 2 seconds.

* Drop "Hydra::View::" from view names to get rid of an ugly warning.
2010-06-22 12:00:19 +00:00
Eelco Dolstra dfd8b4406d 2010-06-21 23:48:25 +00:00
Rob Vermaas 5f7ebaad37 added hide feature for project/jobset 2010-06-04 14:43:28 +00:00
Rob Vermaas b25761d7b2 hydra: added missing fields to query 2010-06-03 09:17:24 +00:00
Eelco Dolstra e2e4b49b98 * Pass `-j 1' to hydra_eval_jobs to ensure that it can make progress
even when all the remote build slots are in use.  The evaluator can
  cause builds if Nix expressions import derivations (e.g. in
  pkgs/build-support/vm to compute the RPM/Deb closures).  If there
  are no free build slots, the evaluator can hang for a long time.
2010-06-01 11:17:02 +00:00
Rob Vermaas bb7f82840b Hydra: Add support for maxSilent meta attribute (also already added timeout, but not implemented the actual timeout for the build yet) 2010-05-26 08:03:59 +00:00
Rob Vermaas 9c42f60f08 Hydra: Allow all builds to be restarted. 2010-05-26 08:03:44 +00:00
Rob Vermaas 75bb591c03 Hydra/32: Add option to force evaluation of a certain jobset via web interface (for admins only) 2010-05-18 11:37:01 +00:00
Rob Vermaas 5e2c683f5b Hydra/29: Added timeout to svn/git checkouts, job evaluation 2010-05-18 11:00:34 +00:00
Rob Vermaas 56f05f2bdf Hydra/26: Go back to using "svn export" as default for svn, added svn-checkout type for jobset which need .svn dirs. export is much more efficient 2010-05-11 11:37:30 +00:00
Rob Vermaas 001113f7f9 Hydra/28: Rename "scheduler" to "evaluator" 2010-05-11 11:10:03 +00:00
Rob Vermaas 368c4cd813 refactored admin controller, using chains, to avoid using requireadmin on each endpoint 2010-04-27 14:11:08 +00:00
Rob Vermaas 7a79d17a36 added newsitems, added some admin options to clear various caches. 2010-04-27 13:29:08 +00:00
Rob Vermaas a9c2880cf6 Hydra/25: At job pages, show the hash of the output
* added hash of output path to the information tab on build page in stead
2010-04-27 07:55:19 +00:00
Rob Vermaas 85928a4222 Hydra/20: Jobset clone feature 2010-04-23 11:20:40 +00:00
Rob Vermaas 2ef90804c6 Hydra/22: on job page, 'finished builds' shows nothing for old (non-current) jobs 2010-04-23 08:17:15 +00:00
Rob Vermaas 5d0bf48aa0 add some stats to jobsets in project view 2010-03-19 08:36:31 +00:00
Rob Vermaas e2be1adc22 hydra: add status icon per jobset on project page 2010-03-18 15:59:24 +00:00
Rob Vermaas ef34de7603 order jobset in project view 2010-03-18 15:15:14 +00:00
Eelco Dolstra abfd6507b2 * Escape the outPath in the generated nixexpr.tar.bz2 in channels, because
store paths with `=' in them (such as 
  /nix/store/chj5wrbmi43zjx77svlr4lgnrqi9pwfy-guile-CPPFLAGS=-DSCM_DEBUG=1-1.9.8.113)
  broke it.
2010-03-17 16:49:52 +00:00
Rob Vermaas 161b88cfd0 * hydra: on git ls-remote add refs/heads/ prefix to branchname to avoid other branches called master (or $branchname) 2010-03-15 10:02:30 +00:00
Rob Vermaas 2278aa87eb * hydra: robots.txt, also disallow logs for the actual builds 2010-03-12 08:50:56 +00:00
Rob Vermaas 1c4585dae3 * hydra: project members can do stuff that the owner can do 2010-03-10 10:02:04 +00:00
Eelco Dolstra f816a5a28d * Only include the system type in URLs if there are multiple jobs with
the same name.
2010-03-07 11:38:39 +00:00
Eelco Dolstra b8a78b2c3f * Support linking to the latest job in a view for a specific platform, e.g.
http://.../view/nixos/tested/latest/iso-minimal-i686-linux.
2010-03-07 11:24:06 +00:00
Eelco Dolstra 72c44ab0ae * Allow dots in job names in views. 2010-03-05 18:08:53 +00:00
Eelco Dolstra 70466156e6 * In views, support selecting a job that doesn't depend on the
primary job, but is in the same jobset.
2010-03-05 17:20:04 +00:00
Eelco Dolstra 3501fa6465 * Cleanup. 2010-03-05 16:37:24 +00:00
Eelco Dolstra da25c963eb * Clean up indentation. 2010-03-05 16:16:49 +00:00
Eelco Dolstra 7daca03e78 * Store jobset evaluations in the database explicitly. This includes
recording the builds that are part of a jobset evaluation.  We need
  this to be able to answer queries such as "return the latest NixOS
  ISO for which the installation test succeeded".  This wasn't previously
  possible because the database didn't record which builds of (say)
  the `isoMinimal' job and the `tests.installer.simple' job came from
  the same evaluation of the nixos:trunk jobset.

  Keeping a record of evaluations is also useful for logging purposes.
2010-03-05 15:41:10 +00:00
Eelco Dolstra 60ad8bd6d1 * Remove a debug statement. 2010-03-05 13:48:41 +00:00
Rob Vermaas b75de713e5 * hydra: reinstate proper error for non existing build, Hydra/9 2010-03-05 13:03:41 +00:00
Eelco Dolstra 6fe9e1b03b * Cannot call isValidPath on a logfile. This happened to work because
isValidPath bypassed the Nix store API.
2010-03-05 10:53:49 +00:00
Eelco Dolstra b9c1f9aca7 * Call computeFSClosure() directly. 2010-03-04 14:15:13 +00:00
Eelco Dolstra 00b2f7c141 * Don't access /nix/var/nix/db directly but use the Nix Perl bindings. 2010-03-04 13:25:12 +00:00
Rob Vermaas 052ce8c577 * hydra: only show current jobs in status overview of jobset page 2010-03-01 10:10:20 +00:00
Rob Vermaas ede90a9ef0 * hydra: alphabetical order of systems in status overview 2010-02-26 09:14:49 +00:00
Rob Vermaas ba60d69e06 missing file 2010-02-26 07:38:54 +00:00
Rob Vermaas 7208f79828 inital version of links to diff in scm 2010-02-25 15:32:56 +00:00
Rob Vermaas 31f68756c5 fix wrong dbix:class:loader generation 2010-02-25 10:22:03 +00:00
Rob Vermaas 4dccd3c620 generated schema with new dbix class schema loader, grrrrrr 2010-02-25 09:50:04 +00:00
Rob Vermaas 8678da61ef * hydra: order project list on name 2010-02-25 09:02:48 +00:00
Rob Vermaas a1c7e359be * hydra: indentation and fixed duplicate key in cachedgitinputs bug 2010-02-24 08:09:58 +00:00
Rob Vermaas 529a6cf6eb * hydra: buildpage, show changes since last build/successful build 2010-02-22 13:21:34 +00:00
Rob Vermaas fb8ab7a574 * hydra: download closure now makes closure of outpath in stead of useless drvpath 2010-02-18 15:09:13 +00:00
Eelco Dolstra 12edc4b8e2 * Speed up the jobstatus query a little bit. 2010-02-12 20:51:24 +00:00
Eelco Dolstra d8cc0bbb5d * Make the "latest succeeded" query (used by the "latest" channel)
faster, from about 4.5s to 1.0s for the global "latest" channel.
  Note that the query is only fast if the "IndexBuildsOnJob" and
  "IndexBuildsOnJobAndIsCurrent" indices are dropped - if they exist,
  PostgreSQL will use those instead of the more efficient
  "IndexBuildsOnJobFinishedId" index.  Looks like a bug in the planner
  to me...
2010-02-12 14:49:32 +00:00
Rob Vermaas 9cebf03a45 * hydra: queue stats (nr running builds / nr queued builds) 2010-02-12 10:19:24 +00:00
Rob Vermaas 68c60b4c66 * hydra: added index, actual build time (buildstep with same outpath, so without deps) of the build 2010-02-11 12:23:46 +00:00
Rob Vermaas 3753ccb1ce * hydra: make chart zoomable and clickable 2010-02-11 09:18:30 +00:00
Rob Vermaas f44128275c * hydra: added initial version of build graph 2010-02-10 10:15:09 +00:00
Eelco Dolstra a7d132ff2a * Escape +', =' and `?' in NAR URIS in manifests. Otherwise you get
an incorrect URI that gives a 410 error.
2010-02-09 16:11:35 +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 59e4f65298 * Speed up the jobset index page. Especially the query to get the
inactive jobs was quite slow.
* "IndexBy" -> "IndexOn".
2010-02-09 13:47:20 +00:00
Rob Vermaas 4abdf86bd4 hydra: remove print stmt 2010-02-09 13:45:38 +00:00
Rob Vermaas 090a648020 hydra: minor improvements in hydra ui 2010-02-09 13:43:53 +00:00
Eelco Dolstra fabc8e4774 * Disable the statistics on the project, jobset and job pages for now
because they take too much time to compute.
2010-02-09 12:35:20 +00:00
Rob Vermaas 88ffadb70e * hydra: handle case where logfile is empty 2010-02-08 11:46:39 +00:00
Rob Vermaas f57b40101a hydra: error on buildpage for queued build 2010-02-06 07:15:31 +00:00
Rob Vermaas 348db7600c * hydra: on build page, show tail of log on first tab when buildstatus == 1 (this specific build failed) 2010-02-05 20:32:07 +00:00
Eelco Dolstra 045d921f7d * Argh. 2010-02-05 20:24:20 +00:00