Commit Graph

4377 Commits

Author SHA1 Message Date
a12e9478e7 When manually scheduling an eval, force re-instantiation of store derivations
Without this, if (failed or aborted) derivations have been
garbage-collected, there is no way to restart them, which is very
annoying. Now we set a forceEval flag in the jobset to cause it to be
re-evaluated even if none of the inputs have changed.
2016-10-24 20:20:20 +02:00
140cbe9302 Set utf-8 charset for raw logs
Also fix incorrect use of Content-Encoding header in View::Plain.
2016-10-24 17:14:33 +02:00
3fcfa20d1a Fix regression caused by ee2e9f53
‘basicDrv.inputSrcs’ also contains the outputs of inputDrvs. These
don't necessarily exist in the local store, so copying them may cause
an exception. We should only copy the real inputSrcs.
2016-10-24 16:49:11 +02:00
f7ff7f741b Fix a couple of encoding issues 2016-10-24 16:49:11 +02:00
3586bf28e4 Build status: copy the alt attribute to the title attribute for on-hover tool tips. (#405) 2016-10-23 13:21:21 +02:00
881d3bc017 Bump Nix 2016-10-21 19:19:28 +02:00
a3efdcdfd9 Use std::regex 2016-10-21 18:06:26 +02:00
5d8fbc6ca1 Fix referer check 2016-10-21 17:56:34 +02:00
c928c41ee1 Add XSRF protection for POST requests
Some Hydra API requests were vulnerable to XSRF attacks, e.g. you
could have a form on another website using http://hydra/logout as the
form action. So we now require POST requests to come from the same
origin.

Reported by Hans-Christian Esperer.
2016-10-20 16:11:33 +02:00
bbe45ed844 Remove Persona support
Persona is no longer supported by Mozilla, so let's remove it.
2016-10-20 14:14:04 +02:00
e0b2921ff2 Concurrent hydra-evaluator
This rewrites the top-level loop of hydra-evaluator in C++. The Perl
stuff is moved into hydra-eval-jobset. (Rewriting the entire evaluator
would be nice but is a bit too much work.) The new version has some
advantages:

* It can run multiple jobset evaluations in parallel.

* It uses PostgreSQL notifications so it doesn't have to poll the
  database. So if a jobset is triggered via the web interface or from
  a GitHub / Bitbucket webhook, evaluation of the jobset will start
  almost instantaneously (assuming the evaluator is not at its
  concurrency limit).

* It imposes a timeout on evaluations. So if e.g. hydra-eval-jobset
  hangs connecting to a Mercurial server, it will eventually be
  killed.
2016-10-14 14:22:12 +02:00
16feddd5d4 Drop obsolete -laws-cpp-sdk-s3 2016-10-14 14:22:12 +02:00
dd5af7637d Remove finally.hh 2016-10-14 14:22:12 +02:00
386a972244 README: fix manual links, fixes #401 2016-10-13 13:36:09 +02:00
607eeda9bb svn.nixos.org -> github.com 2016-10-12 18:00:34 +02:00
7221bd7e5a manual: Add index.html 2016-10-10 15:52:11 +02:00
303718dbd6 Doh 2016-10-10 15:26:50 +02:00
0b5a7472be Add a job for the manual 2016-10-10 15:26:18 +02:00
633724cc8a services.hydra -> services.hydra-dev
Since Nixpkgs 16.09 contains a Hydra module, we were getting a
conflict. I guess we should have a way to override modules in
Nixpkgs...
2016-10-10 11:29:15 +02:00
2f0d2f8d91 Bump Nix 2016-10-10 11:18:17 +02:00
ee2e9f5335 Update to reflect BinaryCacheStore changes
BinaryCacheStore no longer implements buildPaths() and ensurePath(),
so we need to use copyPath() / copyClosure().
2016-10-07 20:23:05 +02:00
fb0d2d2dda Build against the bleeding edge of Nix 2016-10-06 17:26:12 +02:00
e94ef4627c Tests: Clear $NIX_REMOTE_SYSTEMS 2016-10-06 17:19:16 +02:00
f2724d088d Test: Show error output from hydra-queue-runner on timeout 2016-10-06 17:18:59 +02:00
6a313c691b hydra-queue-runner: Fix build 2016-10-06 16:58:54 +02:00
7089142fdc Add error/warnings for deprecated store specification 2016-10-06 15:10:14 +02:00
a73f211bf2 Use store-api for binary cache instantiation 2016-10-06 15:09:44 +02:00
1c2f6281b9 Remove signing parameter (nix#f435f82) 2016-10-06 15:09:12 +02:00
232e6e8556 Replace buildVerbosity with verboseBuild (nix#5761827) 2016-10-06 15:08:02 +02:00
492d16074c Remove s3binarystore (moved to nix in d155d80) 2016-10-06 15:07:21 +02:00
706e06e8d7 hydra-eval-jobs: Fix build 2016-10-06 15:05:05 +02:00
934829a1a9 Remove NetStatsd since it's also in Nixpkgs 2016-10-06 14:50:59 +02:00
c9ab3b9ffd README.md: Point to the manual
Let's not duplicate the hacking instructions here (especially since
they were actually wrong).
2016-10-06 14:37:47 +02:00
b1512a152a Fix build failure on GCC 5.4 2016-09-30 17:05:07 +02:00
fb5e7f9570 Use the new logo (#396) 2016-09-29 13:08:15 +02:00
dedcb76bed module: add default to buildMachinesFiles (#372) 2016-08-20 19:50:12 +02:00
682b4bcc73 Merge pull request #311 from domenkozar/product-list-table
product list: convert to a proper table
2016-08-19 13:40:42 +02:00
b03e3c593c Merge pull request #338 from expipiplus1/apache-include
Enable apache style includes in the config file
2016-08-19 13:32:44 +02:00
5962367ffc Send BuildFinished notifications on cached build results.
Fixes #342
2016-08-17 06:40:12 -04:00
2840a5e089 push_github: return empty response instead of a template, fixes #309 2016-08-17 00:21:18 +02:00
12194447ee GitHub push suffix (#332)
* Fix api/push-github

Fixes #309

* Don't require .git suffix on jobset inputs
2016-08-17 00:00:09 +02:00
03e8538746 Merge pull request #331 from expipiplus1/github-push
Fix api/push-github
2016-08-16 23:59:12 +02:00
71440e7bd7 Merge pull request #379 from domenkozar/sort-inputs-tables
Sort inputs table
2016-08-12 14:10:14 +02:00
c103163825 Sort inputs table 2016-08-12 13:05:28 +02:00
7b3dfe8363 Merge pull request #377 from domenkozar/pixz
Use pixz instead of bzip2 for compressing nars
2016-08-12 12:41:51 +02:00
23bf99b8e2 Use pixz instead of bzip2 for compressing nars
According to following two benchmarks:

- https://www.rootusers.com/gzip-vs-bzip2-vs-xz-performance-comparison/
- http://catchchallenger.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

xz has better compression ratio than bzip2 at lowest compression rate.

https://github.com/vasi/pixz has been chosen as it can scale compressing
over multiple cores linearly.

We're using this in snabblab for a month now and it has improved CPU
wise the main Hydra server.
2016-08-12 11:39:07 +02:00
dd32033657 hydra-update-gc-roots: Only keep outputs when in direct mode
This prevents the server from gradually filling up due to store paths
fetched by hydra-server that then get turned into a GC root by
hydra-update-gc-roots.
2016-07-12 19:23:10 +02:00
fe82a666d5 Merge pull request #360 from expipiplus1/failing-name
Print jobset name when evaluator fails
2016-07-12 10:27:33 +02:00
35a67d19ba Print jobset name when evaluator fails 2016-07-11 17:37:09 +01:00
d317e2d49a Merge pull request #340 from expipiplus1/github-push-ssh
Trigger ssh like urls from github pushes
2016-06-27 09:45:28 +02:00