Commit Graph

56 Commits

Author SHA1 Message Date
8f104396ec Support passing a jobset evaluation as an input
All successful, non-garbage-collected builds in the evaluation are
passed in a attribute set.  So if you declare a Hydra input named
‘foo’ of type ‘eval’, you get a set with members ‘foo.<jobname>’.  For
instance, if you passed a Nixpkgs eval as an input named ‘nixpkgs’,
then you could get the Firefox build for x86_64-linux as
‘nixpkgs.firefox.x86_64-linux’.

Inputs of type ‘eval’ can be specified in three ways:

* As the number of the evaluation.

* As a jobset identifier (‘<project>:<jobset>’), which will yield the
  latest finished evaluation of that jobset.  Note that there is no
  guarantee that any job in that evaluation has succeeded, so it might
  not be very useful.

* As a job identifier (‘<project>:<jobset>:<job>’), which will yield
  the latest finished evaluation of that jobset in which <job>
  succeeded.  In conjunction with aggregate jobs, this allows you to
  make sure that the evaluation contains the desired builds.
2013-11-11 21:17:22 +00:00
b54cfbf032 Merge branch 'master' into persona
Conflicts:
	src/lib/Hydra/Helper/CatalystUtils.pm
	src/root/layout.tt
	src/root/topbar.tt
	src/root/user.tt
2013-11-05 11:11:48 +01:00
0db950931a Merge remote-tracking branch 'upstream/who-broke-builds' into upstream-master
Include information about who changed the build status in notification
emails, and enable optional per-input notification of said committers.

Conflicts due to two branches modifying the database schema.

Signed-off-by: Shea Levy <shea@shealevy.com>

Conflicts:
	src/lib/Hydra/Schema/Jobsets.pm
	src/sql/upgrade-23.sql
2013-10-15 09:49:20 -04:00
09b5679ee7 Clean up the authorization code a bit 2013-10-14 18:01:04 +02:00
26470f1656 Check all inputs for blame but only email selected inputs
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-10-08 14:47:24 -04:00
2c90857689 getResponsibleAuthors: Respect checkResponsible
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-10-08 13:24:49 -04:00
7913701d54 Factor a getResponsibleAuthors helper out of the HipChatNotification
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-10-08 13:24:49 -04:00
550d6b79b1 Allow dots in jobset names (like "release-13.09") 2013-09-24 15:15:44 +02:00
1e1a1f0838 Also allow : (colon) in pathCompRE. 2013-09-07 13:28:53 +02:00
12ca755bea Don't redirect to /login if authentication is required
We can just serve the login page in place.
2013-07-09 12:02:15 +02:00
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
698d6eac89 Eliminate duplicate getPreviousBuild functions
And move some stuff into CatalystUtils for use by other plugins.
2013-06-27 18:08:00 +02:00
51f0185797 Allow _ in release names 2013-06-18 16:00:24 +02:00
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
a77161e40a Allow users to edit their own settings
Also, don't use the flash anymore for going back to the referer.
2013-03-04 15:25:23 +01:00
e8cbcb50ac Add user registration 2013-02-27 18:33:47 +01:00
d596b58991 "Evaluate" command: push the jobset to the front of the eval queue
Don't let hydra-server call hydra-evaluate.  That will probably just
timeout, get killed, etc.
2013-02-26 16:56:19 +01:00
42d2015357 Support push notification of repository changes
External machines can now notify Hydra that it should check a
repository by sending a GET or PUSH request to /api/push, providing a
list of jobsets to be checked and/or a list of repository URLs.  In
the latter case, all jobsets that have any of the specified
repositories as an input will be checked.

For instance, you can configure GitHub or BitBucket to send a request
to the URL

  http://hydra.example.org/api/push?repos=git://github.com/NixOS/nixpkgs.git

to trigger evaluation of all jobsets that have
git://github.com/NixOS/nixpkgs.git as an input, or to the URL

  http://hydra.example.org/api/push?jobsets=patchelf:trunk,nixpkgs:trunk

to trigger evaluation of just the specified jobsets.
2013-02-25 21:10:32 +01:00
767cab6cd2 Correctly redirect to the referring page when logging in 2013-02-21 14:38:18 +01:00
fec45d1f07 Remove dead code 2013-02-21 13:45:11 +01:00
e0de5de91d Fix some warnings 2013-01-23 12:41:57 +00:00
67aefde62c Remove trailing whitespace 2013-01-22 14:41:02 +01:00
d4e49773c5 Allow dashes in attrNames 2013-01-11 12:16:21 +01:00
4ade8c5a1b Add dollar to pathCompRE, which allows files with dollars in them to be served by Hydra, e.g. sphinx generated docs often has these types of files. 2012-10-12 13:48:11 +02:00
d350b935f2 Add validation for project and jobset names 2012-04-17 08:53:00 +00:00
30e2b9046a Cleanup 2012-04-03 11:28:59 +02:00
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
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
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
68a867da67 Merge the BuildResultInfo table into the Builds table 2012-03-12 20:47:29 +01:00
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
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
c613b885f2 Use the new Nix Perl bindings 2011-11-30 15:25:28 +01:00
b75ddbc11c allow _'s in first character of filenames 2011-07-25 23:19:24 +00:00
53c48e4d7d qualify id column in queries 2011-03-14 14:05:32 +00:00
f35c9a4574 hydra: put contents links into html, add links to files from contents page 2011-01-04 12:50:59 +00:00
a75a12e819 * Include the system type in manifests as a hint for the
binary patch generator.
2010-11-26 14:34:58 +00:00
38d50806b9 hydra: if evaluator sees cached build, also add the buildproducts 2010-09-07 11:29:52 +00:00
06e0e80591 bug fix 2010-07-27 11:21:21 +00:00
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
5f7ebaad37 added hide feature for project/jobset 2010-06-04 14:43:28 +00:00
1c4585dae3 * hydra: project members can do stuff that the owner can do 2010-03-10 10:02:04 +00:00
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
529a6cf6eb * hydra: buildpage, show changes since last build/successful build 2010-02-22 13:21:34 +00:00
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
4b0bc65cbb * Add derivations and all build-time dependencies of a build to the
Hydra channels.  This includes sources.
2010-01-19 16:47:32 +00:00
f55e0444c9 project with 0 build resulted in error 2009-11-18 12:59:58 +00:00
e1373fa1c3 * Refactoring: move fetchInput out of hydra_scheduler into a separate
module, since Controller/Build.pm needs it to create a new build.
2009-10-26 15:39:14 +00:00
d1bea30cfc * Editing releases. 2009-10-23 12:42:50 +00:00
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