Commit Graph

64 Commits

Author SHA1 Message Date
ec87ad2bf2 Missing part of aaacf9eda3 2012-04-15 22:57:10 +00:00
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
794602d7ce Drop unused "tag" column
It was intended for CVS inputs but never used.
2012-04-15 12:42:46 +00:00
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
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
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
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
2931689dcf * Ran update-dbix. 2011-02-09 10:19:36 +00:00
dcdbb1d814 hydra: store logfile/output path/closure size 2010-11-11 11:03:50 +00:00
398993f688 hydra: add some admin for adding/enabling/etc build machines 2010-10-13 12:32:57 +00:00
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
2a69745a88 * Store the name of the machine that performed a build step in the
BuildSteps table.
2010-08-31 14:08:59 +00:00
9d9bf8b264 hydra: make nr of build to keep configurable per jobset 2010-08-10 06:48:45 +00:00
6d028a8d43 missing file 2010-07-27 16:24:21 +00:00
5f7ebaad37 added hide feature for project/jobset 2010-06-04 14:43:28 +00:00
b25761d7b2 hydra: added missing fields to query 2010-06-03 09:17:24 +00:00
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
7a79d17a36 added newsitems, added some admin options to clear various caches. 2010-04-27 13:29:08 +00:00
1c4585dae3 * hydra: project members can do stuff that the owner can do 2010-03-10 10:02:04 +00:00
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
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
ba60d69e06 missing file 2010-02-26 07:38:54 +00:00
31f68756c5 fix wrong dbix:class:loader generation 2010-02-25 10:22:03 +00:00
4dccd3c620 generated schema with new dbix class schema loader, grrrrrr 2010-02-25 09:50:04 +00:00
12edc4b8e2 * Speed up the jobstatus query a little bit. 2010-02-12 20:51:24 +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
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
61ad98f982 revert change to dbix::class generated code 2010-02-05 19:41:26 +00:00
9dba2127cb * hydra: 'new' UI for project/jobset/job/build 2010-02-05 14:48:22 +00:00
8a01999220 hydra
* remove trailing spaces from email notification
 * option to disable email notification for jobset
2010-01-06 13:07:59 +00:00
044edfb764 * email notification of evaluation errors to project owner (if desired) 2009-12-18 12:07:45 +00:00
06dc6d8f86 * for git inputs, check latest revision of branch (defaults to master for now), if there is change, only use input if last checkout was > hour ago. 2009-11-19 08:15:49 +00:00
40920935fc remove revision from cached cvs inputs, and added missing files 2009-11-17 15:24:51 +00:00
2fb05b34bf add support for git as jobinput 2009-11-17 15:16:41 +00:00
7eda090e74 * Prevent repeated evaluation of a jobset with the same inputs. This
should make the Hydra scheduler a lot less CPU-intensive, since it
  won't run hydra_eval_jobs all the time.
2009-11-17 13:55:22 +00:00
9aa70716ad 2009-10-26 17:03:48 +00:00
cb2493eca9 * Store the jobset's nixExprPath and nixExprInput fields in a build to
allow it to be cloned (re-executed with modified inputs) later and
  to provide some traceability.
2009-10-26 13:33:48 +00:00
a515c5fef2 2009-10-23 15:05:16 +00:00
851a4dff4d * Creating releases. 2009-10-23 09:58:23 +00:00
929cbe7b7c * Adding persistant releases. A release is a named set of builds. 2009-10-21 15:44:17 +00:00
686b6271d2 * Cleaned up the foreign key constraints.
* Generate SQLite and PostgreSQL schemas from hydra.sql.
2009-10-21 12:25:43 +00:00
cec3201720 * Renaming "release sets" to "views" (not finished yet). Having
releases as a dynamic view on the database was misguided, since
  doing thing like adding a new job to a release set will invalidate
  all old releases.  So we rename release sets to views, and we'll
  reintroduce releases as separate, static entities in the database.
2009-10-15 21:35:19 +00:00
6cedee5476 * Allow jobsets to be disabled. 2009-10-08 11:39:16 +00:00
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
48d8871dbc * Only show status changes from successful to failed and failed to
successful (not between different kinds of failure).
2009-10-07 13:59:12 +00:00
7ae263a23a * Make the queries more readable. 2009-10-07 13:40:58 +00:00
e9cf409d80 * Mark the "current" builds in a jobset, i.e. those corresponding to
the derivations that the jobset currently contains.  This is
  necessary to allow the "latest" channel to contain the correct
  builds when the sources of a jobset are reverted.
2009-10-02 16:06:28 +00:00
fa364fa333 * PostgreSQL compatibility. 2009-07-09 15:08:39 +00:00
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