Commit graph

320 commits

Author SHA1 Message Date
Eelco Dolstra 2ece4d9f15 * Render durations nicely. 2009-03-13 16:04:49 +00:00
Eelco Dolstra 107a0faa51 * PROCESS -> INCLUDE in most cases. INCLUDE does proper scoping of
variables.
2009-03-13 15:57:43 +00:00
Eelco Dolstra 3c86b3652c * Refactoring. 2009-03-13 15:41:19 +00:00
Eelco Dolstra 3af294f848 * Make jobsets viewable under
http://server/jobset/<project>/<jobset>.
2009-03-13 15:23:08 +00:00
Eelco Dolstra ae364b9e5f * Represent jobs explicitly in the DB. 2009-03-13 14:49:25 +00:00
Eelco Dolstra a39a28dffb 2009-03-13 12:45:45 +00:00
Eelco Dolstra 81bdc4cfa2 2009-03-13 12:29:47 +00:00
Eelco Dolstra f2f586d842 * Disambiguate jobs by jobset name. I.e. jobs with the same name in
different jobsets are not considered the same job.
2009-03-12 23:46:17 +00:00
Eelco Dolstra a623ad157e * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
distinguish between jobs with the same name in different jobsets
  (e.g. "trunk" vs "stdenv-branch" for Nixpkgs).
* Renamed the "attrName" field of Builds to "job".
* Renamed the "id" field of BuildSteps to "build".
2009-03-12 14:18:30 +00:00
Eelco Dolstra fec08462ee * In Sqlite "release" is now a keyword, so use "release_" instead.
Note: to upgrade old databases, do a dump with an old Sqlite first;
  dumping with a new Sqlite will silently discard (!) the contents of
  the ReleaseSetJobs table.
2009-03-12 13:42:44 +00:00
Eelco Dolstra 70276f59ea * Remove redundant -fork. 2009-03-11 15:52:39 +00:00
Eelco Dolstra f945fbb5bd * Use Catalyst's HTTP::Prefork engine by default, with some limits to
prevent the server from being overloaded.
2009-03-11 15:48:06 +00:00
Eelco Dolstra 8b752627a2 * Use IO::Handles instead of old school filehandles. This ensures
that the pipe gets closed, and the child process dies, if the HTTP
  connection is prematurely interrupted.
2009-03-11 14:44:34 +00:00
Eelco Dolstra 7ea69e7a9d * Disregard failing substituters. 2009-03-10 11:49:18 +00:00
Eelco Dolstra 18f25a1226 * Doh. 2009-03-10 08:52:42 +00:00
Eelco Dolstra 54a122b49c * DB integrity: when deleting a build, get rid of its build steps. 2009-03-10 08:35:39 +00:00
Eelco Dolstra 6dc9e45fc8 * Doh. 2009-03-09 17:37:57 +00:00
Eelco Dolstra fca7fb20c4 * Negative caching: don't perform a build if a dependency already
failed in a previous build.  This is essential for Nixpkgs: we don't
  want to keep doing the same failed dependency (say, Glibc) over and
  over again for a few hundred jobs.
2009-03-09 17:21:10 +00:00
Eelco Dolstra 8725dc03ec * Use ->update({...}) properly. 2009-03-09 16:22:41 +00:00
Eelco Dolstra e87896e4b4 * eval-jobs -> hydra_eval_jobs. 2009-03-09 15:16:11 +00:00
Eelco Dolstra a74bfdf533 * Inputs of type "build" must now be declared explicitly. 2009-03-09 13:58:43 +00:00
Eelco Dolstra 8c58448afc * hydra_scheduler: use eval-jobs. 2009-03-09 13:04:46 +00:00
Eelco Dolstra 875f57857e * Require every argument to be specified. 2009-03-09 10:13:45 +00:00
Eelco Dolstra 322d907629 2009-03-09 10:01:04 +00:00
Eelco Dolstra 5c45661141 * Report evaluation errors per job, and don't bail out if a job fails
to evaluate.
2009-03-07 14:06:10 +00:00
Eelco Dolstra ba002c6ac5 * eval-jobs now efficiently evaluates all Hydra jobs from a
release.nix expression, accepting multiple values for function
  arguments.  This is much faster than calling nix-instantiate /
  nix-env a zillion times (which is particularly important for
  Nixpkgs).
2009-03-06 16:55:19 +00:00
Eelco Dolstra 0788ec24e6 * Export all relevant info about the derivation. 2009-03-06 15:18:59 +00:00
Eelco Dolstra f9d4957f2f * Export all relevant info about the derivation. 2009-03-06 15:16:29 +00:00
Eelco Dolstra 55b8190fde 2009-03-06 14:16:42 +00:00
Eelco Dolstra 6cef161793 2009-03-06 14:03:09 +00:00
Eelco Dolstra 36fdd7f37f * For products that are directories (like manuals), allow a default
suffix other than index.html to be declared.  E.g. if a build does

    echo "doc manual $out manual.html" >> $out/nix-support/hydra-build-products

  the default link for the product is

    http://localhost:3000/build/417/download/1/manual.html

  but other files are also accessible, e.g.
    
    http://localhost:3000/build/417/download/1/style.css
2009-03-06 13:34:53 +00:00
Eelco Dolstra dca6b943d0 * Allow scheduled builds to be cancelled. They're not removed from
the database, just marked as cancelled, because otherwise the
  scheduler would just add them again.
2009-03-06 12:49:01 +00:00
Eelco Dolstra c724439b20 2009-03-05 15:41:43 +00:00
Eelco Dolstra c3cc2262b7 * Start of a helper tool to evaluate job expressions efficiently. 2009-03-05 14:59:43 +00:00
Eelco Dolstra 97ed2052ba * Move everything up one directory. 2009-03-05 13:41:57 +00:00
Eelco Dolstra 6de278754a 2009-03-05 13:35:46 +00:00
Eelco Dolstra f6fd756134 2009-03-05 12:32:14 +00:00
Eelco Dolstra 7f4762db82 2009-03-04 17:25:52 +00:00
Eelco Dolstra 0bd7abf10b * Controller for jobs which inherits all actions in ListBuilds. So
for instance we get channels specific for each job.
2009-03-04 17:24:08 +00:00
Eelco Dolstra 5162f05e2c * At top-level and for each project, provide two channels: "latest"
(containing the latest successful build of each job) and "all"
  (containing all successful builds ever).
2009-03-04 16:36:23 +00:00
Eelco Dolstra 4089859d33 2009-03-04 15:47:42 +00:00
Eelco Dolstra 07e1d73602 2009-03-04 15:41:37 +00:00
Eelco Dolstra b7892f598d 2009-03-04 15:26:32 +00:00
Eelco Dolstra 7a8903ea54 * XHTML validity. 2009-03-04 15:25:35 +00:00
Eelco Dolstra 56beebc9c6 * Channels: provide an index page that lists all the packages in the
channel.
* Store the meta.homepage attribute in the Builds table.
2009-03-04 14:49:21 +00:00
Eelco Dolstra dad2f31099 * Provide a channel for each project containing all the latest
succesful builds for each job in the project (under
  http://server/project/<name>/channel/latest).
2009-03-04 13:08:09 +00:00
Eelco Dolstra af936d7c91 2009-03-04 12:23:54 +00:00
Eelco Dolstra 462a929ea1 2009-03-04 11:03:43 +00:00
Eelco Dolstra 0a40286202 * Put the project-related actions in a separate controller. Put the
actions for viewing the job status and all builds in a separate base
  class that's inherited both by Root.pm and Project.pm so that we get
  URIs like /jobstatus and /project/<name>/jobstatus for free.
2009-03-04 10:59:14 +00:00
Eelco Dolstra ac8af00e84 2009-03-03 22:20:24 +00:00
Eelco Dolstra 7c616aaf1a 2009-03-03 18:07:31 +00:00
Eelco Dolstra 4044e857b6 2009-03-03 16:44:41 +00:00
Eelco Dolstra e9b3c89c68 2009-03-03 14:21:27 +00:00
Eelco Dolstra 187da72ecd * Set mtime to 0 to ensure that the generate tar file doesn't change
between invocations.
2009-03-03 14:06:05 +00:00
Eelco Dolstra 8c7eb165c9 * Generate a .tar.bz2 file for the channel Nix expression, since
that's what nix-channel expects.
2009-03-03 10:44:54 +00:00
Eelco Dolstra 4d2cb75104 * Escape string literals.[ 2009-03-03 09:37:16 +00:00
Eelco Dolstra 7ffb32e048 * Generate a Nix expression for the channel. 2009-03-02 17:17:36 +00:00
Eelco Dolstra f75924db95 * Allow builds to be restarted (if they failed with a transient error,
e.g. interrupted or network problems).
2009-03-02 16:03:41 +00:00
Eelco Dolstra c7736f0643 2009-03-02 15:21:35 +00:00
Eelco Dolstra f63f2f1a79 * Pass the version of dependencies to the Nix expression. 2009-03-02 15:21:05 +00:00
Eelco Dolstra f1fbcd04a8 2009-03-02 10:23:40 +00:00
Eelco Dolstra d1e0e2f2c6 2009-02-27 15:49:35 +00:00
Eelco Dolstra f0f5b095cc * Quick hack to allow viewing of dependency graphs (via nix-store -q
--graph).  Maybe I should use SVG, since the generated PNGs tend to
  be huge.
2009-02-27 15:31:49 +00:00
Eelco Dolstra c8ad58a774 * Only put Nix builds in the global channel. 2009-02-27 14:57:06 +00:00
Eelco Dolstra abba2e62b4 2009-02-26 21:33:29 +00:00
Eelco Dolstra b1501bc1cd * Speed up manifest generation. 2009-02-26 16:57:05 +00:00
Eelco Dolstra cf37152849 2009-02-25 16:29:54 +00:00
Eelco Dolstra f89757fbd4 2009-02-25 15:39:51 +00:00
Eelco Dolstra ed1668704e 2009-02-25 14:50:17 +00:00
Eelco Dolstra 76c3ae1cef * Refactoring. 2009-02-25 14:34:29 +00:00
Eelco Dolstra 537f7c8c88 * Forgot to commit. 2009-02-25 14:33:33 +00:00
Eelco Dolstra cb342ed0dd * Build the /build stuff in a separate controller. 2009-02-25 12:03:13 +00:00
Eelco Dolstra 16acb2754c * Put actions related to builds under /build (e.g. /log/<buildid>
becomes /build/<buildid>/log).
2009-02-25 10:52:41 +00:00
Eelco Dolstra f8e162cb18 2009-02-23 13:24:23 +00:00
Eelco Dolstra 5fcd2e26c9 * One-click installs. 2009-02-23 13:23:55 +00:00
Eelco Dolstra 5f8dcab854 * Closure downloads: don't include the product number; it's not needed. 2009-02-23 09:34:29 +00:00
Eelco Dolstra 9013e97534 * Generate NAR archives on the fly. Necessary for producing channels
/ one-click installs on demand.
2009-02-19 23:43:08 +00:00
Eelco Dolstra 5a49cc5916 * Generate manifests on demand. Next step: generate NAR archives on
demand, then we can have channel support and one-click installs in
  Hydra.
2009-02-13 17:35:54 +00:00
Eelco Dolstra 95f2362c11 2009-02-12 16:38:08 +00:00
Eelco Dolstra 0be4bad006 * Add a link to each project's homepage. Suggested by karltk. 2009-02-11 23:14:28 +00:00
Eelco Dolstra 66602def16 * Register builds as GC roots so they don't get deleted. 2009-02-06 21:01:20 +00:00
Eelco Dolstra dcacf2c790 * Get rid of a warning. 2009-02-06 21:00:58 +00:00
Eelco Dolstra 64fd90f225 * Automatically keep all builds in the latest successful release in
each release set.
2009-02-06 15:02:49 +00:00
Eelco Dolstra 7c1465944f * Keep the most recent builds for each job. 2009-02-06 14:17:25 +00:00
Eelco Dolstra 14960d6c53 * hydra_update_gc_roots.pl registers build outputs that should be kept
as GC roots and removes GC roots to build outputs that should no
  longer be kept.
2009-01-13 14:02:07 +00:00
Eelco Dolstra 7d2e5c8206 * Icon for ISOs. 2008-12-17 15:59:28 +00:00
Eelco Dolstra 6cb58ef581 * Make the schema class names match the case of the SQL table names. 2008-12-16 16:26:33 +00:00
Eelco Dolstra dfcaa51d7b * Store the meta.longDescription and meta.license attributes in the
database.
2008-12-16 15:09:39 +00:00
Eelco Dolstra 7231556f47 * Cut off builds after half an hour of apparent inactivity. This
should really be configurable.
2008-12-16 10:42:37 +00:00
Eelco Dolstra 5e207cdbb2 * Provide a redirect to the latest successful release in a release set
(e.g. http://localhost:3000/release/patchelf/unstable/latest).
2008-12-15 13:12:51 +00:00
Eelco Dolstra 3a26ab4b21 * Scripts for starting / stopping Hydra. 2008-12-15 11:40:12 +00:00
Eelco Dolstra a4e3e48767 * I love untyped databases... 2008-12-01 11:15:03 +00:00
Eelco Dolstra 61e3eb587a 2008-11-30 18:55:03 +00:00
Eelco Dolstra e686979e55 * Queue runner: don't start scheduled builds builds if they belong to
a disabled project.  Idem for the queue page.
2008-11-30 18:53:58 +00:00
Eelco Dolstra 4f2b47bb0e * Give releases a timestamp. 2008-11-30 00:23:33 +00:00
Eelco Dolstra 5105d15636 * Put the release sets in the navbar. 2008-11-29 13:40:15 +00:00
Eelco Dolstra 0d84d6c166 * Dying considered harmful. 2008-11-29 01:27:17 +00:00
Eelco Dolstra 30e8b14b12 * Better timeout. 2008-11-29 01:26:51 +00:00
Eelco Dolstra ca73ec5763 * Don't ignore SIGCHLD after all, Perl doesn't like it. Just do
a few waitpids periodically.
* Better cleanup of builds that die because of a sqlite locking
  problem.
2008-11-29 01:20:13 +00:00
Eelco Dolstra 22532079ec * Get rid of zombies. 2008-11-29 01:01:22 +00:00
Eelco Dolstra 19c3c83794 2008-11-29 00:56:40 +00:00
Eelco Dolstra 33f3bee810 * Don't use a config file by default. This frees up $HYDRA_CONFIG so
that the user can specify one.
2008-11-29 00:04:45 +00:00
Eelco Dolstra acc2c30eb8 2008-11-28 18:54:09 +00:00
Eelco Dolstra 5613448a81 * Regenerate the bindings from a clean sqlite database. 2008-11-28 18:02:08 +00:00
Eelco Dolstra ff9987c904 * Script for initialising the database. 2008-11-28 17:25:30 +00:00
Eelco Dolstra cbc046edc5 2008-11-28 16:53:53 +00:00
Eelco Dolstra 95381d7d2c * Make HEAD requests work when doing Nix closure downloads. 2008-11-28 16:46:08 +00:00
Eelco Dolstra 3ec88541b2 * Nix expression for building Hydra. 2008-11-28 16:13:06 +00:00
Eelco Dolstra 28526dfaf8 * Reorganising. 2008-11-28 15:14:49 +00:00
Eelco Dolstra cbcfdf9c54 * $HYDRA_DATA environment variable. 2008-11-28 14:36:04 +00:00
Eelco Dolstra b97c946f8e * Fix the terminology. 2008-11-28 11:16:53 +00:00
Eelco Dolstra 88c34fb6c7 2008-11-28 11:01:35 +00:00
Eelco Dolstra 5ca4003b1d * The owner parameter is only set for admin roles. 2008-11-28 11:01:20 +00:00
Eelco Dolstra 2156e406b4 * Monitor for dead builds all the time. 2008-11-28 11:00:55 +00:00
Eelco Dolstra ba5e4be15e 2008-11-28 10:23:00 +00:00
Eelco Dolstra a7d2f5382c 2008-11-28 00:16:01 +00:00
Eelco Dolstra ca1a6d1bdf 2008-11-27 22:29:38 +00:00
Eelco Dolstra f742871910 2008-11-27 22:26:53 +00:00
Eelco Dolstra 58cb6fbea5 2008-11-27 21:40:23 +00:00
Eelco Dolstra 06b49e0df7 2008-11-27 21:08:17 +00:00
Eelco Dolstra e4e7fac958 2008-11-27 20:33:17 +00:00
Eelco Dolstra 1810a13546 2008-11-27 19:06:11 +00:00
Eelco Dolstra ac89e7d4ed 2008-11-27 18:54:25 +00:00
Eelco Dolstra d6f71f2248 * Showing releases. 2008-11-27 18:27:19 +00:00
Eelco Dolstra 7b19257830 2008-11-27 17:01:41 +00:00
Eelco Dolstra 98c53156e6 * Basic release management: releases are now dynamically computed as
database queries from a set of jobs that have to be in a release.
  E.g. a patchelf release might consist of the jobs "tarball", "build",
  and "rpm_fedora10i386".  Here the first job ("tarball") is the
  primary job: all the others have it as an input.  The primary job
  supplies the identity of the release.
2008-11-27 15:16:06 +00:00
Eelco Dolstra 24923ed09a * Make build steps clickable as well. 2008-11-27 10:04:54 +00:00
Eelco Dolstra d9507c304a * Links on trs. 2008-11-27 09:59:29 +00:00
Eelco Dolstra 12dcf2d464 2008-11-27 02:38:03 +00:00
Eelco Dolstra 6f5b98d7ca 2008-11-27 02:29:46 +00:00
Eelco Dolstra ab16bfaf95 * Show job status and all builds for a project. 2008-11-27 02:23:44 +00:00
Eelco Dolstra bebd4a8b89 2008-11-27 01:27:08 +00:00
Eelco Dolstra eb05998749 * Grabbed a logo. TODO: check copyright status. 2008-11-27 01:05:31 +00:00
Eelco Dolstra 266aa141bd * Separate job status and all builds pages. 2008-11-27 00:38:09 +00:00
Eelco Dolstra 38a1b0d7ef * Show global and per-project statistics. 2008-11-26 23:49:51 +00:00
Eelco Dolstra 043127c3d4 * Check the owner. 2008-11-26 23:31:07 +00:00
Eelco Dolstra 2748cfac07 * Role-based access control. Only admins can create projects. Only
admins or project owners can edit or delete a project.
2008-11-26 23:25:24 +00:00
Eelco Dolstra 161e836d0c 2008-11-26 22:42:07 +00:00
Eelco Dolstra 50ae3ca9e9 * Added authentication. 2008-11-26 19:48:04 +00:00
Eelco Dolstra 632d56e665 2008-11-26 18:45:52 +00:00
Eelco Dolstra 41055aabc7 2008-11-26 17:43:53 +00:00
Eelco Dolstra fa042e04ae * Unify rendering of finished and scheduled builds. 2008-11-26 17:43:45 +00:00
Eelco Dolstra b7e03351cb * Allow the maximum number of concurrent builds per platform to be
configured.
2008-11-26 17:14:27 +00:00
Eelco Dolstra 5f7142eb82 * Get the job priority from the meta.schedulingPriority attribute.
Can't use meta.priority because nix-env already uses that one for
  resolving filename clashes.
2008-11-26 14:43:16 +00:00
Eelco Dolstra 21497f9a47 * Don't start more builds concurrently than allowed for each system
type (currently hard-coded at 2).
2008-11-26 14:20:50 +00:00
Eelco Dolstra 39f8b6110f 2008-11-26 13:39:15 +00:00
Eelco Dolstra a36fab9293 2008-11-26 01:11:36 +00:00
Eelco Dolstra c72f4dd67a * Boolean inputs. 2008-11-25 18:34:24 +00:00
Eelco Dolstra 1698e490d0 * Support Subversion checkouts. 2008-11-25 18:13:55 +00:00
Eelco Dolstra b4cfd58944 * Trim some significant whitespace. 2008-11-25 16:35:44 +00:00