Commit Graph

1014 Commits

Author SHA1 Message Date
7aa52517e9 Support multiple machines files
This is primarily useful for the Hydra provisioner, which can write
its machines to another file than /etc/nix/machines.
2015-08-25 15:34:53 +02:00
b0c8eecd37 Merge branch 'build-ng' 2015-08-12 20:32:48 +02:00
62cd9d18b6 Check for a valid number of shares 2015-08-12 15:36:55 +02:00
2e3899ed27 Don't set Expires header for logs of unfinished builds/steps 2015-08-12 12:22:14 +02:00
1705ca41e7 Remove unneeded camelcase 2015-08-10 13:59:22 -04:00
163e696813 Copy-paste error 2015-08-10 13:52:40 -04:00
882b6b3377 Pass a build's drv path as a store path 2015-08-10 13:48:09 -04:00
ce5ffa9fba Only pass the drv path if it is still valid 2015-08-10 13:47:39 -04:00
08739a2a5a Allow bumping an entire evaluation to the front of the queue
This is mostly useful if we need to prioritize (say) a nixos-stable
eval that has some critical security bug fix.
2015-08-10 18:57:59 +02:00
eb13007fe6 Allow build to be bumped to the front of the queue via the web interface
Builds now have a "Bump up" action. This will cause the queue runner
to prioritise the steps of the build above all other steps.
2015-08-10 16:19:47 +02:00
2a240e458e Pass along drvPath and outputName for inputs that are previous builds.
This allows importing the .drv and getting the same store paths as if the
input had been passed in as nix expressions defining a proper derivation.
2015-08-10 08:02:10 -04:00
90c462a222 Merge remote-tracking branch 'origin/master' into build-ng
Conflicts:
	hydra-module.nix
2015-08-04 14:30:22 +02:00
d450d08929 buildInputToString: Use inputType attribute instead of type attribute 2015-08-04 06:50:04 -04:00
6f04299411 Allow downloading file by filename
For instance, instead of

  http://.../build/3770911/download/4/source.tar.gz

you can get

  http://.../build/3770911/download/source.tar.gz

This is useful when file names are constant across builds but product
numbers are not.
2015-07-31 17:50:22 +02:00
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
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