Commit graph

1645 commits

Author SHA1 Message Date
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
Eelco Dolstra 465612fc73 * Fix a weird bug. 2008-11-25 16:35:33 +00:00
Eelco Dolstra cb8e3acb2a * Store the release name. 2008-11-25 16:13:22 +00:00
Eelco Dolstra 8fbb79efe6 * Caching of "path" inputs, and fake a revision number for those. 2008-11-25 14:59:08 +00:00
Eelco Dolstra a8f748e547 * Log evaluation errors etc. in the DB. 2008-11-25 13:27:57 +00:00
Eelco Dolstra 6efe0c37f3 2008-11-25 11:09:15 +00:00
Eelco Dolstra 410b80063c * More global substitution. 2008-11-25 11:01:42 +00:00
Eelco Dolstra 22feae550e * Idem. 2008-11-25 10:55:07 +00:00
Eelco Dolstra fadd7a0448 * HydraFrontend -> Hydra. 2008-11-25 10:53:42 +00:00
Eelco Dolstra 4b478eb8df 2008-11-25 02:34:48 +00:00
Eelco Dolstra 78a694420e 2008-11-25 02:27:03 +00:00
Eelco Dolstra 147b980028 2008-11-25 01:22:47 +00:00
Eelco Dolstra e742833da3 * Get rid of "positive failures" and separate log phases.
* Specifically log, for a build, whether the top-level derivation
  failed, or some dependency failed, or Nix itself barfed.  In the
  latter case log the error output from Nix.
2008-11-25 00:38:16 +00:00
Eelco Dolstra 125d7a985e * Use jquery for the logfile manipulation. 2008-11-18 17:51:40 +00:00
Eelco Dolstra 1f90d94331 * Pretty-print the logs. 2008-11-18 16:45:23 +00:00
Eelco Dolstra f6462ff5bb * Downloading closures. 2008-11-18 14:48:40 +00:00
Eelco Dolstra 9f1f939226 2008-11-18 12:48:58 +00:00
Eelco Dolstra 6aa0ddda51 2008-11-18 12:13:34 +00:00
Eelco Dolstra f0eb8cf08c 2008-11-17 23:59:20 +00:00
Eelco Dolstra 51e617e9e8 2008-11-17 15:31:30 +00:00
Eelco Dolstra ab2b40239f 2008-11-17 15:31:19 +00:00
Eelco Dolstra 9933dd2f27 2008-11-17 13:39:01 +00:00
Eelco Dolstra 0c0175d88e * Adding input value alternatives. 2008-11-17 13:36:58 +00:00
Eelco Dolstra 2650094643 * Editing of jobset inputs. 2008-11-17 11:44:51 +00:00
Eelco Dolstra 66f752beaf 2008-11-14 13:57:17 +00:00
Eelco Dolstra 83d6ad7aa2 2008-11-13 18:16:57 +00:00
Eelco Dolstra 77e1bb7527 * Happy Javascript hacking. 2008-11-13 17:55:40 +00:00
Eelco Dolstra f6f5309a02 2008-11-13 14:54:50 +00:00
Eelco Dolstra 46dc10847a 2008-11-13 12:11:18 +00:00
Eelco Dolstra db68e005a6 2008-11-13 09:48:10 +00:00
Eelco Dolstra 8c6760cecc 2008-11-13 09:25:38 +00:00
Eelco Dolstra 0f03c796e7 2008-11-13 00:01:19 +00:00
Eelco Dolstra cd06b6c97d 2008-11-12 23:45:11 +00:00
Eelco Dolstra 6591118a2b 2008-11-12 23:14:57 +00:00
Eelco Dolstra 08f171d9e8 2008-11-12 16:42:07 +00:00
Eelco Dolstra b96d304c85 * Support serving products that are directories (such as manuals or
coverage analysis reports).
2008-11-12 15:36:50 +00:00
Eelco Dolstra f9c0996003 * Allow downloading of build products. 2008-11-12 14:41:51 +00:00
Eelco Dolstra 25f227f678 2008-11-12 14:29:32 +00:00
Eelco Dolstra 356b77bb95 2008-11-12 13:00:56 +00:00
Eelco Dolstra 80a2350a0a 2008-11-12 11:09:21 +00:00
Eelco Dolstra ee13f3cc0d * Store info about all the build actions and allow them to be
monitored while the build is in progress.
2008-11-11 17:49:50 +00:00
Eelco Dolstra 632bb24687 2008-11-11 14:45:33 +00:00
Eelco Dolstra ecd0ba74e9 * Merged the Build and Job tables. 2008-11-11 12:54:37 +00:00
Eelco Dolstra 0f24c11292 * Perform builds in parallel.
* Turn off sqlite's synchronous mode because fsync() performance
  *really* sucks on ext3 (it syncs the entire filesystem).  See
  https://bugzilla.mozilla.org/show_bug.cgi?id=421482
2008-11-11 10:27:36 +00:00
Eelco Dolstra 8f5e7c319c 2008-11-10 13:33:12 +00:00
Eelco Dolstra 15edf10986 2008-11-10 10:27:52 +00:00
Eelco Dolstra 8f42bf303f 2008-11-10 10:18:50 +00:00
Eelco Dolstra f4a44db664 2008-11-09 00:48:36 +00:00
Eelco Dolstra 74c952d073 2008-11-08 22:40:12 +00:00
Eelco Dolstra ffd0f75692 * Generic declaration of build products. 2008-11-07 17:10:34 +00:00
Eelco Dolstra 2d52634b1e 2008-11-07 15:29:52 +00:00
Eelco Dolstra fe1582a00d * Refactoring. 2008-11-07 14:51:44 +00:00
Eelco Dolstra d5a0f6e145 2008-11-06 23:17:46 +00:00
Eelco Dolstra 2324218ecd 2008-11-06 18:28:34 +00:00
Eelco Dolstra 279de1a9c2 * Support variant builds. 2008-11-06 18:26:29 +00:00
Eelco Dolstra 7bbd736d96 2008-11-06 14:32:30 +00:00
Eelco Dolstra b0bbb1a011 2008-11-06 13:40:31 +00:00
Eelco Dolstra 9894b10131 2008-11-05 23:37:23 +00:00
Eelco Dolstra a77acc2a4f * BuildInputs table: link to dependencies, include store paths. 2008-11-05 23:08:16 +00:00
Eelco Dolstra 0ea294e77e * Store info about the build inputs in the build record. 2008-11-05 06:23:41 +00:00
Eelco Dolstra a970603ad1 * Get dependencies from the database. 2008-11-05 04:52:52 +00:00
Eelco Dolstra 621ce1ee64 2008-11-05 03:25:48 +00:00
Eelco Dolstra 8378d57ba2 2008-11-05 01:58:29 +00:00
Eelco Dolstra 6e73c85c3b * Basic job info in the database. 2008-11-04 18:23:28 +00:00
Eelco Dolstra 5915bcaba3 * Store build duration, handle cached builds. 2008-10-28 17:08:29 +00:00
Eelco Dolstra 08798f3c07 * Some jQuery / CSS hackery. 2008-10-28 15:34:29 +00:00
Eelco Dolstra 9f7403765c * Show the latest build for each job. 2008-10-28 12:44:36 +00:00
Eelco Dolstra 7ded8bbd15 2008-10-28 10:32:31 +00:00
Eelco Dolstra b250fa6094 * Start of a basic Catalyst web interface. 2008-10-28 10:19:31 +00:00
Eelco Dolstra c181fc8703 * Put info about logs / build products in the DB. 2008-10-28 10:18:03 +00:00
Eelco Dolstra ff6021450a * Start putting build results in a database. 2008-10-10 16:05:05 +00:00