Commit graph

320 commits

Author SHA1 Message Date
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
Eelco Dolstra 10ae24fd3c * Fixed a broken redirect when deleting a release set. 2009-04-09 11:43:49 +00:00
Eelco Dolstra 607d5641b6 * Added a page to quickly see all failed builds and failed evaluations
per project or jobset or job or globally.
2009-04-08 22:08:00 +00:00
Eelco Dolstra bf2a5a2629 * Allow omitting the product number if there is only one product in a
build.  This allows URLs like

    http://server/job/patchelf/trunk/deb_debian40i386/latest/download

  or

    http://server/release/patchelf/unstable/latest/deb_debian40i386/download
2009-04-08 09:37:05 +00:00
Eelco Dolstra 11d8421def * Support redirecting to some job of a release. For instance, this
redirects to the "tarball" build of the latest release of
  patchelf/unstable:

    http://server/release/patchelf/unstable/latest/tarball

  In conjunction with the other redirects this allows linking to the
  actual download of the build:

    http://server/release/patchelf/unstable/latest/tarball/download-by-type/file/source-dist
2009-04-08 09:03:45 +00:00
Eelco Dolstra 26ff5f1ff0 * Provide some redirects to build products by type so that we can for
example link to the latest tarball through a URI like:

    http://server/job/patchelf/trunk/tarball/latest/download-by-type/file/source-dist
2009-04-08 08:09:39 +00:00
Eelco Dolstra f9572e4d1e * Provide some redirects to the latest successful build for a job (or
project, or jobset, or globally, but that's not all that useful).
  This is useful if you want to link to the latest build.
2009-04-07 15:49:02 +00:00
Eelco Dolstra 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
Eelco Dolstra ca11aba074 * Fix an infinite recursion. 2009-04-03 09:13:34 +00:00
Eelco Dolstra 0ae979f652 2009-04-03 09:12:36 +00:00
Eelco Dolstra 09944ed3a2 * Forgot to commit. 2009-04-03 08:38:13 +00:00
Eelco Dolstra 753e56b6eb * Improved the navigation bar: don't include all projects (since that
doesn't scale), and include links for jobset/job specific pages.
  The main page now lists the projects.
* Overview pages for jobsets and jobs.
* Links to the channels.
* Jobsets are now defined and edited in a separate action.
2009-04-02 16:15:57 +00:00
Eelco Dolstra db4ce0df06 2009-03-31 16:09:04 +00:00
Eelco Dolstra c970fc8335 * Urgh. 2009-03-31 15:59:47 +00:00
Eelco Dolstra c39a693afd * Generate SVG instead of PNG, which is much faster and smaller. I
tried this before but the text didn't fit in the boxes in Firefox.
  The solution is to use Graphviz' svg:cairo backend instead of svg.
  svg:cairo doesn't depend on client-side fonts.
2009-03-31 15:59:31 +00:00
Eelco Dolstra a6c32b33db 2009-03-31 14:55:47 +00:00
Eelco Dolstra 156f40130e * Generate robots.txt in a more Catalystic way. 2009-03-31 14:14:45 +00:00
Eelco Dolstra d6e996d01c * Generate a robots.txt. 2009-03-31 13:48:03 +00:00
Eelco Dolstra 7b7c3f2265 * Perl sucks. "getBuildLog $drvPath" doesn't mean the same as
"getBuildLog($drvPath)" if you call it in a hash, and quietly screws
  up the rest of the hash.
2009-03-26 15:32:19 +00:00
Eelco Dolstra f0f9f12e42 * Use Nix's negative caching. 2009-03-26 12:53:39 +00:00
Eelco Dolstra 8f6f6ee53e * Allow authorised users to create projects. 2009-03-24 14:22:59 +00:00
Eelco Dolstra c75977ce5a * Record the input containing the Nix expression (release.nix) in the
build inputs.  Otherwise we can't (for example) reproduce a build
  later.
2009-03-23 21:42:59 +00:00
Eelco Dolstra dab25b30f0 * Fix the queue page. 2009-03-23 15:19:34 +00:00
Eelco Dolstra 12c1d90135 * Add some DB indices to make the /releases page much faster.
* Reduce the number of DB queries for the /all and /jobstatus pages.
* Show the Hydra version number.
2009-03-23 13:52:24 +00:00
Eelco Dolstra 0da0384753 * Top-level: don't exit on errors. 2009-03-23 01:13:37 +00:00
Eelco Dolstra d9424b6364 * Show the input bindings in evaluation error messages. 2009-03-20 17:06:50 +00:00
Eelco Dolstra 3d26bb7fd1 * Allow `-' in release set names. 2009-03-20 15:19:17 +00:00
Eelco Dolstra 2755c895ff * In job inputs of type "build", allow the project and jobset names of
the input build to be specified, as well as constraints on the
  inputs of the inputs build.  For instance, you can require that a
  build has input `system = "i686-linux"'.

  This is important when one binary build serves as an input to
  another binary build.  Obviously, we shouldn't pass a build on
  i686-linux as an input to another on i686-darwin.  Hence the
  necessity for constraint.

  The constraint are currently quite limited.  What you really want to
  say is that the "system" input of the other build has to match the
  "system" input of this build.  But those require a bit more work
  since they introduce dependencies between inputs.
2009-03-20 14:50:09 +00:00
Eelco Dolstra d1affbfe1a * Oops. 2009-03-20 10:26:50 +00:00
Eelco Dolstra e076c0cff4 * Catalyst::View::Download::Plain doesn't like empty files. 2009-03-20 10:26:26 +00:00
Eelco Dolstra d13af4f392 * Doh. 2009-03-20 10:19:46 +00:00
Eelco Dolstra 163f3de2fa * Urgh. `-' had special significance in HTML form parameters... 2009-03-19 15:41:33 +00:00
Eelco Dolstra af1e60a043 * Allow `-' in project/jobset names. 2009-03-19 15:12:50 +00:00
Eelco Dolstra ba7b94a852 2009-03-18 18:50:42 +00:00
Eelco Dolstra 9e4b029285 * A quick hack to list the contents of various types of files (RPM,
Debs, tars, ...).
2009-03-18 17:40:12 +00:00
Eelco Dolstra b39e2c5e32 * Doh. 2009-03-18 17:13:13 +00:00
Eelco Dolstra 702da969a6 * Ordering by timestamp isn't a good idea here since a newer revision
might finish building before an older revision, and therefore have a
  lower timestamp.
2009-03-18 16:46:01 +00:00
Eelco Dolstra a1848b08f2 2009-03-16 17:51:42 +00:00
Eelco Dolstra bf1480cc25 * Doh. 2009-03-16 17:46:46 +00:00
Eelco Dolstra 5853a26b13 * Don't discard old build steps when restarting a build. 2009-03-16 16:56:47 +00:00
Eelco Dolstra a6e84d8431 * Option to show the tail of a log. 2009-03-16 12:16:33 +00:00
Eelco Dolstra 54475b9266 * When marking a build as "keep", register it as a root right away
(don't wait for someone to run hydra_update_gcroots), otherwise it
  may still be GC'ed.
2009-03-16 10:57:44 +00:00
Eelco Dolstra d2fc382498 * Register GC roots properly. 2009-03-15 11:56:11 +00:00
Eelco Dolstra 32f0665d2c * Allow users to change the value of a build's "keep" flag, which
prevents the build output from being garbage collected.
2009-03-14 23:56:57 +00:00
Eelco Dolstra eeddf5752d * Provide access to the raw, non-pretty-printed logfiles.
Unfortunately necessary for large logs.
2009-03-14 23:27:08 +00:00
Eelco Dolstra 4404800ad8 * Release sets: need to include the jobset name to disambiguate
between jobs with the same name from different jobsets (e.g. trunk
  vs. branch).
2009-03-14 22:34:22 +00:00
Eelco Dolstra 7c7c43335d * Job status: show the active jobs. 2009-03-13 17:32:08 +00:00
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