Eelco Dolstra
3fa3e6414c
Fix "Use of uninitialized value $mode"
2015-10-09 15:06:57 +02:00
Eelco Dolstra
ca58e97691
Prevent inputs from being garbage collected during evaluation
...
There is still a tiny window between the calls to nix-prefetch-* and
addTempRoot. This could be eliminated by adding a "-o" option to
nix-prefetch-*, or by not using those scripts at all (and use
addToStore directly).
2015-10-09 12:50:23 +02:00
Eelco Dolstra
d959afebe1
Store unset descriptions etc. as nulls
2015-10-08 12:37:56 +02:00
Eelco Dolstra
4b31b23c04
Handle attrsets in meta.license (i.e. lib.licenses)
2015-10-08 11:56:30 +02:00
Eelco Dolstra
b8ff29f0db
Periodically compress logs
2015-10-07 13:12:24 +02:00
Eelco Dolstra
8e8e31ce86
Re-implement log size limits
...
The old queue runner already had this. However, we now store "log
limit exceeded" as a separate status code in the database.
2015-10-06 17:35:08 +02:00
Eelco Dolstra
82504fe010
hydra-queue-runner: Use substitutes
...
This allows Hydra to use binaries from available binary caches. It
makes the queue monitor thread quite a bit slower, so if you don't
want to use binary caches, it's better to add "--option
build-use-substitutes false" to the hydra-queue-runner invocation.
Fixed #243 .
2015-10-05 14:57:44 +02:00
Eelco Dolstra
ae2cc61be6
Fix hydra.queue.machines.total stat
...
This was broken by the fact that "machines" now also contains
removed/disabled machines.
2015-09-22 12:59:19 +02:00
Eelco Dolstra
f8141fdc98
Set propagatedFrom for cached failed build steps
2015-09-11 15:55:26 +02:00
Eelco Dolstra
2dc9b9e32a
Don't show "localhost" as machine for cached failed build steps
2015-09-11 14:12:07 +02:00
Eelco Dolstra
aea1ed7445
hydra-evaluator: Fix error handling in fetching inputs
...
This caused bogus "cannot find the input containing the job
expression" errors.
2015-09-11 13:49:46 +02:00
Eelco Dolstra
c1dd3fe4be
Machine status page: Show disabled machines and some machine stats
2015-09-09 16:51:43 +02:00
Eelco Dolstra
6075ac6fed
Remove localhost hack
2015-09-09 16:50:59 +02:00
Eelco Dolstra
ee9bf7ace7
Account steps with preferLocalBuild as a separate system type
...
They will show up in machineTypes as (e.g.) x86_64-linux:local instead
of x86_64-linux. This is to prevent the Hydra provisioner from
creating machines for steps that are supposed to be executed locally.
2015-09-02 13:42:25 +02:00
Eelco Dolstra
7e954aff03
Keep machine stats even when a machine is removed from the machines file
...
This is important for the Hydra provisioner, since it needs to be able
to see whether a disabled machine still has jobs running on it.
2015-09-02 13:31:47 +02:00
Eelco Dolstra
2d116d758a
Return JSON for /eval
2015-09-02 13:13:55 +02:00
Eelco Dolstra
4f018b0612
Include the eval IDs in the JSON /build result
2015-09-02 12:57:58 +02:00
Eelco Dolstra
2b9bf7526d
hydra-send-stats: Keep track of the number of machines
2015-08-27 12:05:06 +02:00
Eelco Dolstra
68796b2762
Fix email notification
2015-08-26 17:25:00 +02:00
Eelco Dolstra
2a7fbd57cc
Allow the machines file to specify host public keys
...
It's easier for the Hydra provisioner to put host public keys in the
machines file than to separately manage the known_hosts file
(especially when the provisioner runs on a different machine).
2015-08-26 13:43:02 +02:00
Eelco Dolstra
88d7eb5247
Remove double entry for localhost on machines status page
2015-08-26 13:01:45 +02:00
Eelco Dolstra
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
Rob Vermaas
442bed3b59
Force bash usage in dev-shell. Should fix #236
2015-08-17 15:47:58 +00:00
Eelco Dolstra
7a654259ff
Wake the dispatcher when the machines file has changed
2015-08-17 15:48:10 +02:00
Eelco Dolstra
092d60735b
Keep track of wait time per system type
...
I.e., how much time the currently runnable steps per system type have
been waiting. This is useful for deciding whether to provision more
machines.
2015-08-17 15:45:44 +02:00
Eelco Dolstra
99bfc37764
Don't abort steps that have an unsupported system type
...
This is necessary because the required system type can become
available later (e.g. by being provisioned by the
auto-scaler). However, in the future, we may want to fail steps if
they have been unsupported for more than a certain amount of time.
2015-08-17 15:10:41 +02:00
Eelco Dolstra
ea1eb2e3fb
Keep track of requiredSystemFeatures in the machine stats
...
For example, steps that require the "kvm" feature may require a
different kind of machine to be provisioned. This can also be used to
require performance-sensitive tests to run on a particular kind of
machine, e.g., by setting requiredSystemFeatures to something like
"ec2-i2.8xlarge".
2015-08-17 14:37:57 +02:00
Eelco Dolstra
a6e3cb53b9
Use /usr/bin/env to find perl
...
This is nicer in nix-shell.
2015-08-17 14:18:20 +02:00
Eelco Dolstra
d571e44b86
Keep stats for the Hydra auto scaler
...
"hydra-queue-runner --status" now prints how many runnable and running
build steps exist for each machine type. This allows additional
machines to be provisioned based on the Hydra load.
2015-08-17 13:50:41 +02:00
Eelco Dolstra
69e9f73cf6
Use nixUnstable for the tarball
...
Not needed for building, only for dev-shell.
2015-08-17 11:17:54 +02:00
Eelco Dolstra
b0c8eecd37
Merge branch 'build-ng'
2015-08-12 20:32:48 +02:00
Eelco Dolstra
48d6f0de2a
Fix the API test
2015-08-12 16:07:19 +02:00
Eelco Dolstra
62cd9d18b6
Check for a valid number of shares
2015-08-12 15:36:55 +02:00
Eelco Dolstra
006d105f93
Fix syntax error
2015-08-12 14:53:34 +02:00
Eelco Dolstra
d4759c1da2
hydra-queue-runner: Detect changes to the scheduling shares
2015-08-12 13:17:56 +02:00
Eelco Dolstra
2e3899ed27
Don't set Expires header for logs of unfinished builds/steps
2015-08-12 12:22:14 +02:00
Eelco Dolstra
576dc0c120
For completeness, re-implement meta.schedulingPriority
2015-08-12 12:05:43 +02:00
Eelco Dolstra
b7965df928
Load the queue in order of global priority
2015-08-11 02:14:34 +02:00
Eelco Dolstra
97f11baa8d
Revive jobset scheduling
...
(I.e. taking the jobset scheduling share into account.)
2015-08-11 01:31:56 +02:00
Eelco Dolstra
cf9516baa4
Merge pull request #231 from shlevy/prev-build-drv-info
...
Pass along drvPath and outputName for inputs that are previous builds.
2015-08-10 20:23:29 +02:00
Shea Levy
1705ca41e7
Remove unneeded camelcase
2015-08-10 13:59:22 -04:00
Shea Levy
163e696813
Copy-paste error
2015-08-10 13:52:40 -04:00
Shea Levy
882b6b3377
Pass a build's drv path as a store path
2015-08-10 13:48:09 -04:00
Shea Levy
ce5ffa9fba
Only pass the drv path if it is still valid
2015-08-10 13:47:39 -04:00
Eelco Dolstra
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
Eelco Dolstra
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
Eelco Dolstra
27182c7c1d
Start steps in order of ascending build ID
2015-08-10 16:19:47 +02:00
Shea Levy
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
Eelco Dolstra
52ec971154
Don't render machine name if not applicable to step
2015-08-10 12:54:56 +02:00
Eelco Dolstra
593850b956
Fix potential race in dispatcher wakeup
2015-08-10 12:54:55 +02:00