Commit Graph

1020 Commits

Author SHA1 Message Date
07634e8862 buildInputToString: Pass along the input's type and urr 2015-07-31 09:47:44 -04:00
4d26546d3c Add support for tracking custom metrics
Builds can now emit metrics that Hydra will store in its database and
render as time series via flot charts. Typical applications are to
keep track of performance indicators, coverage percentages, artifact
sizes, and so on.

For example, a coverage build can emit the coverage percentage as
follows:

  echo "lineCoverage $pct %" > $out/nix-support/hydra-metrics

Graphs of all metrics for a job can be seen at

  http://.../job/<project>/<jobset>/<job>#tabs-charts

Specific metrics are also visible at

  http://.../job/<project>/<jobset>/<job>/metric/<metric>

The latter URL also allows getting the data in JSON format (e.g. via
"curl -H 'Accept: application/json'").
2015-07-31 00:57:30 +02:00
9afaf322b3 Use latest DBIx::Class::Schema::Loader 2015-07-30 16:55:11 +02:00
fbd48f5684 Make cloning of jobsets work again.
(cherry picked from commit 706551453800fb3a4bb3d8b681dad157a8cea98b)
2015-07-14 09:07:10 +00:00
06d75699a7 Fix restarting a build 2015-07-10 16:56:53 +02:00
7f865a30d5 hydra-evaluator: Fix input change check
Because inputs were processed in random order by inputsToArgs, the
inputs hash could be different every time, leading to unnecessary
re-evaluations.
2015-07-10 16:44:06 +02:00
5919e911db Don't show how long a machine has been idle
Without an index on (machine, stoptime desc), this requires a
sequential scan. And adding a whole index for this seems
overkill. (Possibly the queue runner could maintain this info more
efficiently.)
2015-07-10 15:41:57 +02:00
b09f7e0989 Add page showing latest build steps 2015-07-10 15:41:57 +02:00
0da08df4eb Stream logs if possible and remove size limit 2015-07-08 19:05:17 +02:00
bbee81efae Use triggers for all notifications on Builds table changes 2015-07-08 12:05:32 +02:00
95c4294560 Allow cancelling builds marked as busy
Note that if there are active build *steps*, this won't cancel them.
2015-07-07 14:08:46 +02:00
dd4f6e695e Merge branch 'master' into build-ng 2015-07-06 17:17:51 +02:00
ccf6e6062c Store full Mercurial revision hashes 2015-07-06 17:17:17 +02:00
309ef5baa9 Merge branch 'master' into build-ng 2015-07-06 15:57:09 +02:00
b85e9ef1cd Support using Git revisions as branch names 2015-07-06 15:56:24 +02:00
b03de925cb Allow a jobset to be created from an evaluation
Fixes #150.
2015-07-06 15:56:20 +02:00
dffb629b8a Unify Hydra's NixOS module with the one used for hydra.nixos.org
In particular, the queue runner and web server now run under different
UIDs.
2015-07-02 01:01:44 +02:00
3e0f5f664a GitInput plugin: Don't clone during getCommits
This doesn't work if hydra-queue-runner has no write access to the scm
directory, and in any case races with the evaluator.
2015-07-02 00:44:40 +02:00
ae52fc7f61 Remove display of queue runner log file (it no longer exists) 2015-07-02 00:18:33 +02:00
3c665dac82 Remove superfluous HYDRA_LOGO environment variable 2015-07-01 11:34:19 +02:00
9a041f9a36 Restart builds failed due to unsupported system type 2015-06-26 11:28:38 +02:00
c54a04688e Fix email sender address when notification_sender is not set 2015-06-25 16:49:01 +02:00
133d298e26 Asynchronously compress build logs 2015-06-19 15:06:12 +02:00
c6d504edbb Handle SSH hosts without a @ 2015-06-17 13:49:18 +02:00
c974fb893b Support cancelling builds 2015-06-11 18:07:45 +02:00
c08883966c Use PostgreSQL notifications for queue events
Hydra-queue-runner now no longer polls the queue periodically, but
instead sleeps until it receives a notification from PostgreSQL about
a change to the queue (build added, build cancelled or build
restarted).

Also, for the "build added" case, we now only check for builds with an
ID greater than the previous greatest ID. This is much more efficient
if the queue is large.
2015-06-11 17:41:59 +02:00
6d738a31bf Keep track of failed paths in the Hydra database
I.e. don't use Nix's failed paths feature anymore. Easier to keep
everything in one place.
2015-06-10 14:57:16 +02:00
8b12ac1f6d Basic remote building
This removes the need for Nix's build-remote.pl.

Build logs are now written to $HYDRA_DATA/build-logs because
hydra-queue-runner doesn't have write permission to /nix/var/log.
2015-06-09 14:21:21 +02:00
dc446c3980 Start of single-process hydra-queue-runner 2015-05-28 17:39:29 +02:00
91ecee0e5d Fix reproduce script 2015-05-26 15:54:38 +02:00
d9ab964203 UTF-8 fix 2015-04-14 15:20:56 +02:00
63306aaf5a hydra-evaluator: Add some debug code 2015-04-09 17:35:04 +02:00
a2dc92d871 Die tabs die 2015-04-09 17:22:10 +02:00
91e7e6f6ab Use DAG range to determine commits between mercurial revisions. Previously it would show also commits in other branches. 2015-03-23 13:52:06 +00:00
62805dd73c Queue: Remove the scheduling priority
Scheduling is mostly based on jobset shares these days. So showing and
sorting by priority just wastes space and gives the incorrect
impression that Hydra executes builds in the order shown on the queue
page.
2015-02-26 13:16:25 +01:00
c04c8c2bf1 Jobset job tab: Show eval date rather than eval ID
Eval IDs carry no useful information, so it's better to show the date
of the eval. If the date is recent, a relative date is given (e.g. "3h
ago").
2015-02-26 13:01:01 +01:00
adc72d2409 Record which build a failed build step was propagated from 2015-02-25 16:42:32 +01:00
9282bcb95f Show eval input changes in deterministic order 2015-02-25 13:13:12 +01:00
7c048cbbcf Allow a different state directory for hydra-server
This is necessary if hydra-server runs under a different uid than the
other Hydra processes.
2015-02-24 11:40:24 +01:00
00e03b9db5 For consistency, Use base32 hashes in manifests 2015-02-19 12:44:52 +01:00
69adcd4be1 Update binary cache signing to Nix 1.9 2015-02-17 20:15:37 +01:00
ea815d55b8 More robot exclusions 2015-01-13 13:50:13 +01:00
80116b648e Exclude robots from all of /build 2015-01-13 13:45:39 +01:00
c0ca5489e1 Don't use given/when
These give warnings in Perl >= 5.18:

  given is experimental at /home/hydra/src/hydra/src/lib/Hydra/Helper/CatalystUtils.pm line 241.
  when is experimental at /home/hydra/src/hydra/src/lib/Hydra/Helper/CatalystUtils.pm line 242.
  ...
2014-12-12 11:27:17 +01:00
e56e743f97 S3Backup: Create a proper nar 2014-12-10 23:06:52 -05:00
208bbbb4b0 s3backup: Create temporary file in temp dir 2014-12-10 22:06:32 -05:00
9e00d98d34 Shut up some Perl 5.20 warnings 2014-11-25 00:27:52 +01:00
5e265e6739 Tweak blame message 2014-11-19 15:24:31 +01:00
7b5b434014 Fix getResponsibleAuthors 2014-11-19 15:22:30 +01:00
0d28e9372b Remove dead code 2014-11-19 14:59:36 +01:00