Commit graph

296 commits

Author SHA1 Message Date
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
Eelco Dolstra a22946abe7 * When a store path has disappeared for some reason,
../nix/<storepath> should return a HTTP error.  Otherwise,
  mirror-channel.pl will happily mirror the error page.
2010-02-05 20:08:41 +00:00
Eelco Dolstra 9b25d7b299 * A `nix-build' Hydra product must be a directory. 2010-02-05 20:07:49 +00:00
Rob Vermaas 61ad98f982 revert change to dbix::class generated code 2010-02-05 19:41:26 +00:00
Rob Vermaas 9dba2127cb * hydra: 'new' UI for project/jobset/job/build 2010-02-05 14:48:22 +00:00
Ludovic Courtès e1f45498c9 Set $NIX_PREFETCH_GIT_DEEP_CLONE. 2010-01-25 13:26:37 +00:00
Rob Vermaas eec5838a7e * hydra: add deps list to pages not to be indexed by google etc 2010-01-22 14:44:09 +00:00
Rob Vermaas b615135825 * hydra: add dependency list with links to logfiles 2010-01-22 13:31:59 +00:00
Rob Vermaas c791485099 * hydra: show queue optimization 2010-01-22 10:29:54 +00:00
Eelco Dolstra 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
Eelco Dolstra a2a041303f * Handle the case where there is no cached build step that produced
outpath.  This can happen if the build was performed outside of
  Hydra.
2010-01-19 16:35:16 +00:00
Rob Vermaas 3b504b2370 * hydra: added variant of build input type, 'build output (same system)' to allow better continous integration in one jobset for multiple system. it makes sure that the system of the build that is passed as input for a job has the same system as the job. 2010-01-19 14:15:31 +00:00
Rob Vermaas 63db13be3f hydra: in case of cached build, add link to build that built the storepath 2010-01-15 14:18:12 +00:00
Rob Vermaas 13c8953918 * removed stats from home page. will make global stats page later on 2010-01-11 10:07:10 +00:00
Rob Vermaas fe8a376864 show current builds on job page 2010-01-08 11:50:55 +00:00
Rob Vermaas 67f468e0a3 - adapted ui for hydra, more in line with nixos.org website 2010-01-07 14:25:12 +00:00
Rob Vermaas 8a01999220 hydra
* remove trailing spaces from email notification
 * option to disable email notification for jobset
2010-01-06 13:07:59 +00:00
Rob Vermaas 044edfb764 * email notification of evaluation errors to project owner (if desired) 2009-12-18 12:07:45 +00:00
Ludovic Courtès d6416ada4e Set $NIX_PREFETCH_SVN_LEAVE_DOT_SVN to 1. 2009-12-03 15:03:06 +00:00
Rob Vermaas e322cb1304 first try for timeline of last 24 hours in hydra 2009-12-01 19:17:38 +00:00
Rob Vermaas f99b1ee9b1 first try for timeline of last 24 hours in hydra 2009-12-01 19:15:09 +00:00
Rob Vermaas 42c7bb57e8 * hydra: enable pp'ing of logs for bigger files again 2009-11-25 09:39:03 +00:00
Rob Vermaas 94634773b1 support git branches as input in stead of only master branch 2009-11-23 13:38:27 +00:00
Rob Vermaas 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
Ludovic Courtès 2b5ef66111 Ask nix-prefetch-git' to leave .git' in the output. 2009-11-18 16:42:35 +00:00
Ludovic Courtès cdfc96194c Use $NIX_PREFETCH_GIT_CHECKOUT_HOOK to produce a `.git-version' file. 2009-11-18 16:25:47 +00:00
Rob Vermaas f55e0444c9 project with 0 build resulted in error 2009-11-18 12:59:58 +00:00
Rob Vermaas 40920935fc remove revision from cached cvs inputs, and added missing files 2009-11-17 15:24:51 +00:00
Rob Vermaas 2fb05b34bf add support for git as jobinput 2009-11-17 15:16:41 +00:00
Eelco Dolstra 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
Eelco Dolstra 2bcedde1c8 * Sort releases. 2009-11-04 17:17:44 +00:00
Eelco Dolstra 3e5e49debd * Allow a view result to be saved as a release. 2009-10-27 15:31:26 +00:00
Eelco Dolstra 9aa70716ad 2009-10-26 17:03:48 +00:00
Eelco Dolstra e25f112b82 * Implemented the clone feature. 2009-10-26 17:01:23 +00:00
Eelco Dolstra 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
Eelco Dolstra 57cc6ceca6 * UI for cloning builds (not functional yet). 2009-10-26 14:30:42 +00:00
Eelco Dolstra 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
Eelco Dolstra 1038e2ebee * Allow the description of a release member to be edited, and to
delete a release member.
2009-10-26 12:04:12 +00:00
Eelco Dolstra 578e37d55c * Only non-garbage collected builds can be added to a release. 2009-10-26 10:46:57 +00:00
Eelco Dolstra f984eed77b * Align the apply/delete buttons. 2009-10-26 10:35:59 +00:00
Eelco Dolstra 7e81fbd56a * A quick (non-Web 2.0) interface to manually add builds to a release. 2009-10-23 15:57:18 +00:00
Eelco Dolstra a515c5fef2 2009-10-23 15:05:16 +00:00
Eelco Dolstra d1bea30cfc * Editing releases. 2009-10-23 12:42:50 +00:00
Eelco Dolstra 851a4dff4d * Creating releases. 2009-10-23 09:58:23 +00:00
Eelco Dolstra 929cbe7b7c * Adding persistant releases. A release is a named set of builds. 2009-10-21 15:44:17 +00:00
Eelco Dolstra 686b6271d2 * Cleaned up the foreign key constraints.
* Generate SQLite and PostgreSQL schemas from hydra.sql.
2009-10-21 12:25:43 +00:00
Eelco Dolstra 2cf42489e2 * More renaming. 2009-10-20 12:35:01 +00:00
Eelco Dolstra 321027b262 * More release -> view. 2009-10-20 12:26:39 +00:00
Eelco Dolstra 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
Eelco Dolstra dd12113eb2 * Pass the page number in the URI query string. 2009-10-15 12:59:55 +00:00
Rob Vermaas d109910453 * paging for releases page 2009-10-15 11:13:36 +00:00
Eelco Dolstra 903ca3b246 * Make download-by-type more deterministic when there are multiple
files of the same type.
2009-10-12 17:07:36 +00:00
Eelco Dolstra 6cedee5476 * Allow jobsets to be disabled. 2009-10-08 11:39:16 +00:00
Eelco Dolstra 08f3b7bf2a * Use isCurrent to determine the inactive jobs. 2009-10-08 08:54:42 +00:00
Eelco Dolstra 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
Eelco Dolstra 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
Eelco Dolstra 7ae263a23a * Make the queries more readable. 2009-10-07 13:40:58 +00:00
Eelco Dolstra 05c7989c3e * Don't show platforms that are not included in the current jobset. 2009-10-02 17:11:28 +00:00
Eelco Dolstra 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
Eelco Dolstra 2613d8721a * Don't crawl the channel pages, particularly because the "all"
channel can be very large.
2009-09-30 12:26:51 +00:00
Rob Vermaas d7713b4dba * Add nix version to footer of hydra pages 2009-09-01 08:50:51 +00:00
Eelco Dolstra b1289533e6 * More database hackery. 2009-07-09 15:26:55 +00:00
Eelco Dolstra fa364fa333 * PostgreSQL compatibility. 2009-07-09 15:08:39 +00:00
Eelco Dolstra 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
Eelco Dolstra 5bdd5e7152 * Added a maintainers field to the Builds table.
* Regenerated the schema bindings with the latest DBIx::Class.
2009-07-07 13:59:59 +00:00
Eelco Dolstra 3e192cbb90 * Support showing the contents of ISO images (using isoinfo in
cdrkit).
2009-07-07 11:37:47 +00:00
Rob Vermaas 1da4f89eae * added jar to 'contents' list 2009-06-18 13:23:04 +00:00
Rob Vermaas e457be469c sequence fix for postgresql 2009-05-11 13:56:52 +00:00
Rob Vermaas b52796feac check getHydraPath in stead of Envvar HYDRA_DBI directly 2009-05-09 16:10:50 +00:00
Rob Vermaas f1611a7edd check if HYDRA_DBI is defined in stead of empty string comparison 2009-05-09 16:00:08 +00:00
Rob Vermaas f2a1fb3937 Added sequences for auto increment primary key columns (for PostgreSQL) 2009-05-07 13:30:55 +00:00
Rob Vermaas a509694220 Hydra now uses an optional HYDRA_DBI environment variable which holds the DBI url. If this variable is not set, sqlite is used like before. 2009-04-29 11:07:46 +00:00
Rob Vermaas d774cd6f18 changed queries for compatibility with postgresql 2009-04-28 14:21:33 +00:00
Eelco Dolstra 469893cd4a * The "latest" channel shouldn't contain inactive jobs. 2009-04-25 11:41:46 +00:00
Eelco Dolstra 000fffeb11 2009-04-25 11:27:46 +00:00
Eelco Dolstra 3c47a11bd9 * Don't disable fsync in production. 2009-04-25 07:48:30 +00:00
Eelco Dolstra 97a6011628 * Hack around those SQLite timeouts: just retry the transaction. 2009-04-22 22:43:04 +00:00
Eelco Dolstra 018585dba8 * In the job status page and the channels, pick the build with the
highest ID rather than the highest timestamp.  Otherwise, if a build
  from revision N finishes after a build from revision N + 1, then
  the build from revision N will end up in the channel.  Thus, the
  channel contents will be out of sync.

  This is still not quite correct: if a revision *reverts* to an older
  build, the channel will still end up out of sync, because Hydra
  won't schedule the build again (after all, it has already done it).
  A better fix would be to add a separate timestamp denoting when the
  build was last "current" (i.e. corresponding to the "head revision"
  of its job).
2009-04-22 13:55:20 +00:00
Eelco Dolstra 4d699c97fd * Don't do pretty printing for large logs, because the XSLT processing
is rather slow.
2009-04-16 15:22:14 +00:00
Eelco Dolstra d6bd9bab5f * Job status / error pages: show only active jobs. 2009-04-15 14:50:15 +00:00
Eelco Dolstra 2a05522189 * Don't index any of the logs (mostly because xsltproc can be a huge
resource hog).
2009-04-14 12:40:00 +00:00
Eelco Dolstra 28fde34b9c 2009-04-09 15:09:00 +00:00