Commit graph

215 commits

Author SHA1 Message Date
Rob Vermaas
5d166150f9 using backquote as argument resulted in only first line as first argument to removeAsciiEscapes 2011-06-10 10:48:51 +00:00
Rob Vermaas
48b435c2de remove ascii escapes from log in tail page and emails 2011-06-10 09:53:15 +00:00
Rob Vermaas
fca3019c7b qualify ordery_by clauses when necessary, remove unnecessary order_by's, reported by Ludo, resulted in errors in sqlite 2011-04-01 07:40:06 +00:00
Rob Vermaas
2849279f80 do not send email for builds with status 'aborted' 2011-03-15 12:12:56 +00:00
Rob Vermaas
03d12ca68e Hydra/57: Unknown failure -> Failed 2011-03-15 11:51:00 +00:00
Rob Vermaas
560f41a7e5 if HYDRA_CONFIG is not set, take default 2011-03-07 15:49:48 +00:00
Rob Vermaas
586f131ebd use HYDRA_DATA/hydra.conf as default location for hydra.conf 2011-03-07 15:06:32 +00:00
Rob Vermaas
d4e9f5383b Hydra/56: handle failed builds with result only at build level, not buildsteps 2011-03-07 13:55:43 +00:00
Rob Vermaas
98824f2aaf hydra: nix-prefetch-bzr missing in tarball 2011-02-09 12:44:46 +00:00
Rob Vermaas
6e213fab97 hydra: add nix-prefetch-* to tarball 2011-01-14 14:11:08 +00:00
Rob Vermaas
2892c92569 move nix-prefetch-* into tarball 2011-01-14 14:04:46 +00:00
Rob Vermaas
039d1bed21 hydra: add support for succeedOnFailure feature in stdenv 2010-12-22 14:55:05 +00:00
Rob Vermaas
0cee7c0909 hydra: handle case where build to keep set to 0 2010-11-23 09:05:09 +00:00
Eelco Dolstra
91fe70522f * Doh. Remove debug statement. 2010-11-22 12:20:04 +00:00
Eelco Dolstra
a93e272364 * Add a NarSize field to Hydra manifests. This allows nix-env
to predict how much disk space a package will require.
* Compute the output / closure size using the info stored in the
  Nix database (rather than doing a slow "du").
2010-11-19 15:44:20 +00:00
Eelco Dolstra
738712fca0 * Merge the GC branch. 2010-11-19 11:01:31 +00:00
Rob Vermaas
dcdbb1d814 hydra: store logfile/output path/closure size 2010-11-11 11:03:50 +00:00
Rob Vermaas
753f5679cb hydra: remove HYDRA_HOME env var, not used 2010-10-08 10:45:44 +00:00
Rob Vermaas
5e0e9e058d hydra: removed need for HYDRA_BUILD_BASEURL env variable 2010-10-08 10:45:42 +00:00
Rob Vermaas
c37b90ee3e hydra: use autoconf/-make 2010-09-30 14:29:15 +00:00
Rob Vermaas
38d50806b9 hydra: if evaluator sees cached build, also add the buildproducts 2010-09-07 11:29:52 +00:00
Rob Vermaas
c5ceece093 hydra: moved getbuildlog 2010-09-02 08:56:29 +00:00
Rob Vermaas
d7487ab0d9 hydra: at evaluation, check if path is already built, and mark as built in stead of adding to the queue. 2010-09-01 10:50:57 +00:00
Rob Vermaas
2e02291092 fixed email bug 2010-09-01 08:52:54 +00:00
Eelco Dolstra
1495e04d9d * Speed up findBuildDependencyInQueue by doing only one SQL query for
all the dependencies (`drvpath => [ @drvs ]' is an OR).
2010-08-31 16:19:33 +00:00
Eelco Dolstra
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
Eelco Dolstra
2a69745a88 * Store the name of the machine that performed a build step in the
BuildSteps table.
2010-08-31 14:08:59 +00:00
Rob Vermaas
7bd11b87f0 hydra: only use keepnr to determine if builds should be kept 2010-08-10 08:00:28 +00:00
Rob Vermaas
9d9bf8b264 hydra: make nr of build to keep configurable per jobset 2010-08-10 06:48:45 +00:00
Rob Vermaas
34e309f0f7 hydra: if a project or jobset is hidden (and thus disabled) do not keep builds 2010-08-09 18:36:16 +00:00
Rob Vermaas
066fd3e41f hydra: fixed email notification bug, when build is performed for the first time (it always said succeeded in the body of the mail 2010-08-09 13:08:27 +00:00
Rob Vermaas
87007fb97c hydra: fix enable email notification bug 2010-08-06 08:35:06 +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
001113f7f9 Hydra/28: Rename "scheduler" to "evaluator" 2010-05-11 11:10:03 +00:00
Rob Vermaas
4550ced942 Hydra/28: Rename "scheduler" to "evaluator" 2010-05-11 11:09:58 +00:00
Rob Vermaas
e18fe1078a rename var 2010-04-27 08:01:38 +00:00
Rob Vermaas
2bfddaf4ae Hydra/23: added some X-headers with meta info in email notifications, added more descriptive status 2010-04-26 14:36:56 +00:00
Rob Vermaas
1d0598272e Hydra/17: in queue runner, prefer builds in the queue that are a dependency of another build (with higher priority) 2010-04-23 11:33:06 +00:00
Rob Vermaas
742846e476 Hydra/18: fixed uninitialized value error when logfile is null 2010-04-19 10:25:17 +00:00
Rob Vermaas
8fb3d901cb Merge branch 'queue-17' 2010-04-13 08:42:44 +00:00
Rob Vermaas
c38eca41a8 deleted some old scripts 2010-03-23 20:04:01 +00:00
Eelco Dolstra
82a325a8cd * $currentBuilds{id} can be 0. 2010-03-05 17:48:00 +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
77d4a8c027 * Keep the 3 most recent builds for every platform for every job.
Previously it just kept the 3 most recent builds for every job
  (contrary to what the comment said).
2010-02-15 10:21:11 +00:00
Eelco Dolstra
6dd87f5851 * Typo. 2010-02-10 12:27: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
4a9234bc1d probably shouldn't leave in the debug statements 2010-01-12 08:40:41 +00:00
Rob Vermaas
3763748dbb revert unmeant previous change which caused errors to stay, even after successful evaluation of jobs 2010-01-12 08:39:30 +00:00
Rob Vermaas
791a6eddd6 hack to try and prevent too many newlines 2010-01-07 13:53:05 +00:00
Rob Vermaas
1c0d34d395 removed debug print, added last 50 lines in failure emails 2010-01-06 13:57:41 +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
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
e25f112b82 * Implemented the clone feature. 2009-10-26 17:01:23 +00:00
Eelco Dolstra
f72367407a * Some renaming. 2009-10-26 15:55:19 +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
cd27c046b0 * Fix an apparent incompatibility with recent DBIx::Class. 2009-10-26 13:55:54 +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
69f290413c * Do not garbage collect releases. 2009-10-26 12:47:29 +00:00
Eelco Dolstra
2cf42489e2 * More renaming. 2009-10-20 12:35:01 +00:00
Eelco Dolstra
8f9417f822 * Be a bit less aggressive in rescheduling builds that have already
been done.
2009-10-19 12:36:15 +00:00
Rob Vermaas
3ebe5e1069 2009-10-15 13:35:52 +00:00
Rob Vermaas
1c5ab05521 * added support for twitter notification
3 environment variables are important: 
      TWITTER_USER
      TWITTER_PASS
      HYDRA_BUILD_BASEURL
   - twitter notification is off when TWITTER_USER and TWITTER_PASS are not defined
   - if HYDRA_BUILD_BASEURL is not defined, no URL is put in the twitter messages
2009-10-15 13:23:15 +00:00
Eelco Dolstra
71bc5b14a0 * Add --fallback to prevent problems with obsolete substitutes. 2009-10-08 11:51:49 +00:00
Eelco Dolstra
6cedee5476 * Allow jobsets to be disabled. 2009-10-08 11:39:16 +00:00
Eelco Dolstra
158a746e94 * Don't bother with the Jobs.active column anymore. 2009-10-08 11:19:39 +00:00
Eelco Dolstra
f158697796 * Shut up DBIx::Class. 2009-10-08 11:19:17 +00:00
Eelco Dolstra
076ef05578 * In the scheduler, don't check if we've already done a build (except
against the set of current builds for the job).  This ensures that
  the builds with the highest ID are what we want in the channel, even
  in case of reverts.
2009-10-07 13:18:12 +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
cbeccda5eb * Typo. 2009-08-12 13:50:59 +00:00
Eelco Dolstra
5e72c17540 * Include more info in notification emails. 2009-08-12 13:31:27 +00:00
Eelco Dolstra
c1e6797d39 * Allow overriding the sender email address. 2009-07-24 18:06:34 +00:00
Rob Vermaas
f89644ddb7 time out to 3600 for now 2009-07-13 11:42:56 +00:00
Eelco Dolstra
1cc99505b7 2009-07-10 14:43:21 +00:00
Eelco Dolstra
abe0a8eb9d * Get the URI for use in notification mails from the Hydra config
file.
2009-07-10 09:47:42 +00:00
Eelco Dolstra
bbf718e64d * Revert for now due to Postgres breakage. 2009-07-09 10:53:31 +00:00
Eelco Dolstra
44454ebeac * Send email if a build fails. 2009-07-08 15:52:55 +00:00
Eelco Dolstra
3119cc7edc 2009-07-07 16:15:38 +00:00
Eelco Dolstra
24a3b39463 * Store meta.maintainers. 2009-07-07 14:33:51 +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
000fffeb11 2009-04-25 11:27:46 +00:00
Eelco Dolstra
109cc35edf * Randomly permute the order in which builds are added. This is
mainly to prevent all those Nixpkgs builds named "kde*" from
  building at the same time.  Since they all have the same slow
  dependencies (qt, kdelibs) this tends to block the buildfarm.
2009-04-23 15:40:36 +00:00
Eelco Dolstra
c48ec3d340 * Autoflush stdout. 2009-04-22 22:59:54 +00:00
Eelco Dolstra
97a6011628 * Hack around those SQLite timeouts: just retry the transaction. 2009-04-22 22:43:04 +00:00
Eelco Dolstra
80691a39f5 * Don't log redundant build steps in case of cached failures. 2009-04-22 14:41:12 +00:00
Eelco Dolstra
db4ce0df06 2009-03-31 16:09:04 +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
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
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
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
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
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
7c7c43335d * Job status: show the active jobs. 2009-03-13 17:32:08 +00:00
Eelco Dolstra
ae364b9e5f * Represent jobs explicitly in the DB. 2009-03-13 14:49:25 +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
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
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
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
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
97ed2052ba * Move everything up one directory. 2009-03-05 13:41:57 +00:00