Kevin Quick
2e225ba7c8
Do not attempt to report dir for grab command failure if not specified.
2019-03-17 23:15:24 -07:00
Graham Christensen
0721f6623f
Merge pull request #627 from samueldr/hydra-eval-jobs/warn-max-heap-size
...
hydra-eval-jobs: Warn and resets maxHeapSize on bad values
2019-03-17 19:36:53 -04:00
Graham Christensen
baf828a560
Merge pull request #624 from kquick/job_headers
...
Add job status headers (web useability for red/green colorblindness).
2019-03-17 17:24:38 -04:00
Graham Christensen
88a92256e1
Merge pull request #636 from Ma27/serve-json-for-evals-and-machines
...
Serialize data as JSON with `Accept: application/json`
2019-03-17 17:17:17 -04:00
Graham Christensen
21a4433fec
Merge branch 'master' into job_headers
2019-03-17 17:16:37 -04:00
Graham Christensen
c8fa7ffc12
Merge pull request #629 from Ma27/fix-maintainer-notifications
...
hydra-eval-jobs: fix maintainer resolution
2019-03-17 17:12:55 -04:00
Graham Christensen
014e5aa10d
Merge pull request #628 from dasJ/patch-1
...
Support $X-Request-Base for the Logo
2019-03-17 16:22:53 -04:00
Maximilian Bosch
1cbbc6c52c
Serialize data as JSON with Accept: application/json
...
Similar to #607 . According to the Catalyst[1] docs it's possible to
specify a data structure that is supposed to be serialized when
requesting i.e. a JSON response.
[1] https://metacpan.org/pod/Catalyst::Controller::REST#status_ok
2019-02-14 01:22:48 +01:00
Eelco Dolstra
5dd4736aed
Merge pull request #632 from nlewo/localhost-error-message
...
hydra-queue-runner: better error message if nix-store can not be started
2019-01-23 10:46:30 +01:00
Antoine Eiche
9a73ec6455
hydra-queue-runner: better error message if nix-store can not be started
...
The hydra-queue-runner opens a connection to the builder. If the
builder is 'localhost' it starts `nix-store`, otherwise it starts
'ssh'.
Currently, if the hydra-queue-runner can not start `nix-store` (not in
the PATH for instance), the error message is:
cannot connect to ‘localhost’: error: cannot start ssh: No such file
or directory
This is not useful since ssh is actually not started:/
With this patch the error message is now:
cannot connect to ‘localhost’: error: cannot start nix-store: No such file
or directory
2019-01-23 10:42:47 +01:00
Eelco Dolstra
f5686e0958
Merge pull request #633 from samueldr/feature/dev-server
...
Add hydra-dev-server which uses the classic Catalyst server
2019-01-23 10:39:47 +01:00
Samuel Dionne-Riel
04ff9e217b
Add hydra-dev-server which uses the classic Catalyst server
...
This, in turns allows
- Using --restart for reloading the perl code
- Printing traces on error
2019-01-22 20:34:21 -05:00
Samuel Dionne-Riel
a16d0c7d6b
Makes user-facing dates local when possible
...
Also ensures it makes available the hydra timezone in the title of the
dates.
2019-01-22 17:53:46 -05:00
Samuel Dionne-Riel
2430b12ec9
Adds moment.js for client-side date manipulations
2019-01-21 19:57:22 -05:00
Eelco Dolstra
e0d8dcfe2d
Merge pull request #619 from samueldr/feature/lazy_errors
...
Adds error messages to lazy tabs
2019-01-20 23:22:17 +01:00
Shea Levy
b298ba4bbe
Merge branch 'pr-gitlabpulls' of git://github.com/nlewo/hydra
2019-01-11 10:08:23 -05:00
Maximilian Bosch
aa87e7a52e
hydra-eval-jobs: fix maintainer resolution
...
Some time ago the data structure for maintainer descriptions in
`nixpkgs` changed from a simple attr set with maintainer emails as
values to an attribute set where the maintainer' nick is associated to
an attribute set with email, GitHub handle and full name.
Hydra can either parse a Nix list or fetches `shortName` from the
associated attribute set (which is used for `meta.licenses` as each
value in it contains a `shortName`). This behavior needs to be
replicated for maintainers to retrieve the emails for `hydra-notify`.
This change is backwards-compatible since `queryMetaStrings` is still
able to understand lists, so old versions of `nixpkgs` or packages using
the old maintainer data structure remain usable.
2018-12-29 14:47:03 +01:00
Janne Heß
3a70688985
Support $X-Request-Base for the Logo
2018-12-27 17:08:20 +01:00
Samuel Dionne-Riel
dd188d3035
hydra-eval-jobs: Warn and resets maxHeapSize on bad values
...
This is because setting only the initial heap size to more than
the default value (or the configured value) will cause all initial evals
until maxHeapSize expands to the given value to abort.
The 1.1 multiplier comes from the the configured defaults on NixOS' hydra,
and from the previous multiplier used before
7876cf677c
.
2018-12-21 22:57:07 -05:00
Eelco Dolstra
423c0440ea
Typo
2018-12-20 12:07:02 +01:00
Kevin Quick
8315e20ab5
Lighten delta mark to blend better with other column headers.
2018-12-16 22:34:22 -08:00
Kevin Quick
dfce2ad69a
Use rowspans to align Jobs reference in evaluations rendering
2018-12-16 22:26:44 -08:00
Kevin Quick
0e7593a4a1
Remove blank lines, consistent attribute quoting, use svg for delta header, column sizes.
2018-12-15 22:25:02 -08:00
Kevin Quick
5716e69767
Add job status headers (web useability for red/green colorblindness).
2018-12-15 11:58:26 -08:00
Samuel Dionne-Riel
ed85daf2ac
User: jobs tab returns its error as a lazy error.
2018-12-01 13:40:41 -05:00
Samuel Dionne-Riel
9986053e73
Controllers: allows lazy tabs to return custom errors.
2018-12-01 13:40:41 -05:00
Antoine Eiche
d9253543e4
plugin/GitLabPulls: support for using a personal access token (PAT)
...
In order to access protected or private repositories. Using the target
repository URL along with the merge-request ref instead of the source
repository url and branch is necessary to avoid running into issues if
the source repository is not actually accessible to the user Hydra is
authenticating as.
Thanks Alexei Robyn for this patch.
2018-11-20 16:27:40 +01:00
Rob Vermaas
14d5577bf8
Add duration to Slack notification.
2018-11-20 14:57:50 +01:00
Eelco Dolstra
cd234f6a14
Merge pull request #529 from bennofs/feat-all-builds
...
feat: add /eval/<id>/builds endpoint
2018-11-19 17:36:19 +01:00
Michael Bishop
7916c6b185
[DEVOPS-1126] throttle github status calls to remain under api ratelimits
2018-11-09 12:06:37 -04:00
Eelco Dolstra
1c44de1779
Merge pull request #567 from phile314/bitbucket_pulls
...
Add BitBucket pull request support
2018-11-06 10:48:37 +01:00
Antoine Eiche
0d2a2d8923
Add json output for the search API endpoint
...
This commit also add a test of this feature.
Note the search JSON output doesn't contain any jobs because they can
not be exported to JSON yet.
The JSON output on a search query matching a build looks like:
```
{
"builds": [
{
"buildoutputs": {
"out": {
"path": "/nix/store/wdag3pznrvqk01byk989irg7rq3q2a2c-job"
}
},
"finished": 0,
"releasename": null,
"starttime": null,
"project": "sample",
"buildproducts": {},
"timestamp": 1541007629,
"buildstatus": null,
"nixname": "job",
"drvpath": "/nix/store/n9zqndn7j7nyr6gg3bmxvw26cfmdwv2n-job.drv",
"job": "job",
"id": 1,
"stoptime": null,
"priority": 100,
"system": "x86_64-linux",
"jobsetevals": [
1
],
"jobset": "default",
"buildmetrics": {}
}
],
"projects": [],
"jobsets": [],
"buildsdrv": []
}
```
2018-11-01 09:31:15 +01:00
Rob Vermaas
adf59a3959
Merge pull request #604 from andir/single-build-restart
...
allow users with 'restart-jobs' role to restart individual builds
2018-10-31 12:26:35 +01:00
Eelco Dolstra
8d26144121
Fix building against nix master
2018-10-30 14:41:21 +01:00
Antoine Eiche
68aad22d19
Add GitlabPulls input plugin
2018-10-15 14:45:26 +02:00
Andreas Rammhold
63a294d4ca
allow users with 'restart-jobs' role to restart individual builds
2018-10-04 21:59:42 +02:00
Tom Bereknyei
8bffbb7928
evalSettings deprecated, submodule fix
2018-10-03 00:45:42 -04:00
Kevin Quick
35bcab74ed
Fix darcs input to use darcs-specific SCM cache dir.
...
Currently re-using the git cache dir which could cause overlap problems.
2018-09-09 22:04:32 -07:00
Eelco Dolstra
b7c42a38a3
Merge pull request #575 from Ma27/fix-tab-jobset-view
...
jobset view: jump back to the proper tab when displaying all failed jobsets
2018-09-06 21:11:59 +02:00
Nathan van Doorn
a77954be4d
Allow for precisely one instance of RunCommand plugin
2018-08-21 15:52:41 +01:00
Eelco Dolstra
b542b73ced
hydra-eval-jobs: Reinitialize Boehm GC in the child
...
This is necessary to prevent hangs in the garbage collector.
2018-08-10 20:25:43 +02:00
Eelco Dolstra
7876cf677c
Increase maxHeapSize more gradually
2018-08-10 19:23:31 +02:00
Eelco Dolstra
4dca8fe14d
Gradually increase maxHeapSize
2018-08-07 11:47:53 +02:00
Eelco Dolstra
e122d3bef3
RunCommand: Return metrics as a float
...
Apparently, DBIx::Class doesn't handle columns with type 'double
precision' properly.
2018-08-02 12:31:28 +02:00
Eelco Dolstra
6db2cbf094
Add a plugin to execute arbitrary commands when a build finishes
...
The plugin can be configured using one or more <runcommand> sections
in hydra.conf, e.g.
<runcommand>
command = echo Build finished
</runcommand>
Optionally, the command can be executed for specific
projects/jobsets/jobs:
job = patchelf:master:tarball
or
job = patchelf:*:*
The default is *:*:*.
The command is executed with the environment variable $HYDRA_JSON
pointing to a JSON file containing info about the build, e.g.
{
"build": 3772978,
"buildStatus": 0,
"drvPath": "/nix/store/9y4h1fyx9pl3ic08i2f09239b90x1lww-patchelf-tarball-0.8pre894_ed92f9f.drv",
"event": "buildFinished",
"finished": 1,
"job": "tarball",
"jobset": "master",
"metrics": [
{
"name": "random1",
"unit": null,
"value": "20282"
},
{
"name": "random2",
"unit": "KiB",
"value": "6664"
}
],
"outputs": [
{
"name": "out",
"path": "/nix/store/39h5xciz5pnh1aypmr3rpdx0536y5s2w-patchelf-tarball-0.8pre894_ed92f9f"
}
],
"products": [
{
"defaultPath": "",
"fileSize": 148216,
"name": "patchelf-0.8pre894_ed92f9f.tar.gz",
"path": "/nix/store/39h5xciz5pnh1aypmr3rpdx0536y5s2w-patchelf-tarball-0.8pre894_ed92f9f/tarballs/patchelf-0.8pre894_ed92f9f.tar.gz",
"productNr": 4,
"sha1hash": "9f27d18382436a7f743f6c2f6ad66e1b536ab4c8",
"sha256hash": "b04faef2916c411f10711b58ea26965df7cb860ca33a87f1e868051b874c44b3",
"subtype": "source-dist",
"type": "file"
},
{
"defaultPath": "",
"fileSize": 121279,
"name": "patchelf-0.8pre894_ed92f9f.tar.bz2",
"path": "/nix/store/39h5xciz5pnh1aypmr3rpdx0536y5s2w-patchelf-tarball-0.8pre894_ed92f9f/tarballs/patchelf-0.8pre894_ed92f9f.tar.bz2",
"productNr": 3,
"sha1hash": "7a664841fb779dec19023be6a6121e0398067b7c",
"sha256hash": "c81e36099893f541a11480f869fcdebd2fad3309900519065c8745f614dd024a",
"subtype": "source-dist",
"type": "file"
},
{
"defaultPath": "README",
"fileSize": null,
"name": "",
"path": "/nix/store/39h5xciz5pnh1aypmr3rpdx0536y5s2w-patchelf-tarball-0.8pre894_ed92f9f",
"productNr": 2,
"sha1hash": null,
"sha256hash": null,
"subtype": "readme",
"type": "doc"
},
{
"defaultPath": "",
"fileSize": 6230,
"name": "README",
"path": "/nix/store/39h5xciz5pnh1aypmr3rpdx0536y5s2w-patchelf-tarball-0.8pre894_ed92f9f/README",
"productNr": 1,
"sha1hash": "dc6bb09093183ab52d7e6a35b72d179869bd6fbf",
"sha256hash": "5371aee9de0216b3ea2d5ea869da9d5ee441b99156a99055e7e11e7a705f7920",
"subtype": "readme",
"type": "doc"
}
],
"project": "patchelf",
"startTime": 1533137091,
"stopTime": 1533137094,
"timestamp": 1533136076
}
So for example, the following command:
command = echo Build $(jq -r .build $HYDRA_JSON) \($(jq -r .project $HYDRA_JSON):$(jq -r .jobset $HYDRA_JSON):$(jq -r .job $HYDRA_JSON)\) finished, metrics: $(jq -r '.metrics[].value' $HYDRA_JSON).
will print
Build 3772978 (patchelf:master:tarball) finished, metrics: 20282 6664.
2018-08-01 19:43:50 +02:00
Eelco Dolstra
8e17a413f5
hydra-notify step-finished: Don't barf if the step has no log file
2018-08-01 17:17:46 +02:00
Eelco Dolstra
dca6c5a983
hydra-eval-jobs: Filter ANSI escape sequences
2018-08-01 17:06:32 +02:00
Eelco Dolstra
1898e31ed8
hydra-eval-jobset: Respect email_notification
2018-08-01 16:56:53 +02:00
Eelco Dolstra
162d671c48
Revert "Fix broken build.x86_64-linux job ( #573 )"
...
This reverts commit c2e2b42877
, which
breaks building with nixUnstable.
2018-07-31 10:23:41 +02:00
Maximilian Bosch
37d35ac51e
jobset view: jump back to the proper tab when displaying all failed jobsets
...
When I press "n builds omitted" I get back to the first tab of a jobset.
This is extremely counter-intuitive, instead this notice should link to
the currently opened tab.
2018-07-15 17:52:14 +02:00
Jacob Mitchell
c2e2b42877
Fix broken build.x86_64-linux job ( #573 )
...
The job has been failing since https://hydra.nixos.org/eval/1461286
with the following error:
hydra-eval-jobs.cc:278:17: error: 'evalSettings' was not declared in this scope
evalSettings.restrictEval = true;
^~~~~~~~~~~~
This is likely due to a typo in 0882519
where that line and the
corresponding comment were moved, and `settings` was changed in that
one place to `evalSettings`.
I reproduced the error by running `nix-build release.nix -A
build.x86_64-linux` on my machine, and this small change fixes it.
2018-07-07 19:15:01 +01:00
Kevin Quick
e523e8a643
Additional helpful information in error messages.
2018-06-29 17:41:23 -07:00
Philipp Hausmann
f738f6feb3
Add BitBucket pull request support
2018-06-22 11:22:54 +02:00
Rob Vermaas
879333fd3c
Make /api/push-github public for private Hydra instances. This makes it possible to use webhooks to trigger evaluations for private Hydra instances.
2018-06-14 17:23:01 +02:00
AmineChikhaoui
298e99449b
add metrics for hydra notifications.
2018-06-12 13:00:39 +01:00
AmineChikhaoui
99e6c19672
add some more statistics about runnable/running builds per arch/system
...
features.
2018-06-12 13:00:00 +01:00
Eelco Dolstra
0882519b10
hydra-eval-jobs: Ugly hackery to reduce memory usage
...
You can now set 'evaluator_max_heap_size' to make hydra-eval-jobs
restart itself if the Boehm heap exceeds the specified size.
For example, with 'evaluator_max_heap_size = 256000000',
$ hydra-eval-jobs '<nixpkgs/pkgs/top-level/release.nix>' -I nixpkgs=channel:nixos-17.09
has a max RSS of .56 GiB rather than 4.7 GiB.
Unfortunately it doesn't help much for the NixOS jobsets because of
the "tested" job which requires a huge amount of memory all by itself.
2018-06-05 13:24:23 +02:00
Eelco Dolstra
39eca8bef1
Fix build against Nix master
2018-06-05 13:24:23 +02:00
Shea Levy
70eb67fe5b
Allow channels to be usefully imported by other nix expressions.
2018-05-25 11:22:20 -04:00
Patrick Hilhorst
d27732bdf0
Remove "bashism"
...
Replace `bash <(...)` with `... | bash`
See also: NixOS/nixpkgs#40521
2018-05-16 23:56:40 +02:00
Eelco Dolstra
09a4c9fad2
hydra-evaluator: Allow setting the maximum number of concurrent evaluations
2018-05-16 14:22:00 +02:00
Eelco Dolstra
4e27796eba
Allow setting GC_INITIAL_HEAP_SIZE for hydra-eval-jobs
...
This cannot be done in the hydra-evaluator systemd unit, since then
every other Nix process (e.g. hydra-evaluator and nix-prefetch-*) will
also allocate the specified heap size, probably leading to OOM.
2018-05-16 14:14:53 +02:00
Eelco Dolstra
215b724e44
Fix passing arguments to the reproduction script
2018-05-10 15:11:08 +02:00
Michael Bishop
4015bca225
fix a stray newline in a path
2018-03-16 13:04:48 -03:00
Eelco Dolstra
85524b2d0f
Disable jobset deletion
...
This is a good way to make Hydra hang. (E.g. we had a deletion of
nixos:gcc-7 running for > 12 hours and blocking UPDATE statements from
hydra-queue-runner.) Generally it's better to just disable/hide an old
jobset anyway.
2018-03-13 14:05:55 +01:00
Eelco Dolstra
02888105a8
Add a hydra.conf option to enable email notification
...
Note that it's disabled by default.
2018-03-12 14:04:23 +01:00
Eelco Dolstra
c0fac52872
Add some debug code
2018-03-07 10:23:43 +01:00
Eelco Dolstra
5a1f2a50e5
Handle derivations with system type 'builtin'
...
Fixes #540 .
2018-03-07 10:22:35 +01:00
Eelco Dolstra
68afa2bf6f
Dump more system info in /queue-runner-status
2018-03-07 10:06:56 +01:00
Philipp Hausmann
3cf2ffe367
[ Fix #531 ] Trim github pr plugin store paths.
...
nix-store --add returns a trailing LF which caused wrong include
paths for the github PR plugin JSON input.
2018-02-12 17:59:56 +01:00
Graham Christensen
aeca462de0
Typo: on the build view page: Yu -> You
2018-02-08 12:37:21 -05:00
Eelco Dolstra
fd463ff403
Remove nix-install-package support
...
'nix-install-package' no longer exists in Nix 1.12.
Closes #268 .
2018-01-15 14:27:58 +01:00
Benno Fünfstück
3ab5d299c1
feat: add /eval/<id>/builds endpoint
...
This endpoint allows efficient retrieval of all the builds in an
evaluation, without making a request for each single build.
2018-01-14 01:29:37 +01:00
Graham Christensen
83a48d2d4f
Add a restart-jobs role
...
Frequently users want Hydra access just to restart jobs. However,
prior to this commit the only way to grant that access was by giving
them full Admin access which isn't necessarily what we want to do.
By having a restart-jobs role, we can grant this privilege to users
who are known to the community and want to help, but aren't long-time
members.
I haven't tested this commit, but it looks good to me...
2017-12-30 08:28:23 -05:00
Eelco Dolstra
8913c682cf
Doh
2017-12-25 15:02:17 +01:00
Eelco Dolstra
0d79f16fd5
git-export -> source
2017-12-25 14:31:30 +01:00
Eelco Dolstra
7ccec0900b
Fix links to steps in the machines page
2017-12-07 16:20:23 +01:00
Eelco Dolstra
e9670641ec
Distinguish build step states
...
The web interface now shows whether a build step is connecting,
copying inputs/outputs, building, etc.
2017-12-07 15:35:31 +01:00
Eelco Dolstra
457483ba0e
Don't lock the BuildSteps table when inserting
...
Instead, optimistically insert a row and retry if there is a conflict.
2017-12-07 14:41:29 +01:00
Eelco Dolstra
2660c3cc54
Remove redundant check
2017-12-05 16:00:18 +01:00
AmineChikhaoui
52e0ebcfed
hide disabled jobsets by default.
2017-12-05 14:07:58 +01:00
Eelco Dolstra
364e21919a
hydra-eval-{jobs,jobset}: Pass file name as <...>
2017-11-28 16:51:00 +01:00
Eelco Dolstra
b7bc4384b7
Fix serving plain text files
2017-11-21 17:55:52 +01:00
Eelco Dolstra
5986aae704
Add option eval_substituter
...
When using the "build" or "sysbuild" jobset input types in conjunction
with a binary cache store, the evaluator needs to be able to fetch
store paths from the binary cache. Typical usage:
store_uri = s3://nix-test-cache?secret-key=...
eval_substituter = s3://nix-test-cache
Also, the public key of the binary cache must be added to
binary-cache-public-keys in nix.conf, otherwise the local nix-daemon
won't allow the store paths to be copied over.
2017-11-20 16:12:20 +01:00
Eelco Dolstra
7857f83251
Serve directories and symlinks correctly
2017-11-14 17:17:07 +01:00
Eelco Dolstra
100249c066
Use git rev-list --count
2017-11-14 16:18:54 +01:00
Eelco Dolstra
2cdc84f34f
Fix build against Nix master
...
Also, remove support in hydra-eval-jobs for multiple jobset input
alternatives. The web interface hasn't supported this in a long
time. Thus we can use the regular "--arg" handler.
2017-10-26 13:10:14 +02:00
Eelco Dolstra
eef0d8861b
Remove test line
2017-10-19 13:17:29 +02:00
Eelco Dolstra
b04dc6c76e
Fix root creation when the root already exists but is owned by another user
2017-10-19 12:28:38 +02:00
Eelco Dolstra
b904f25247
Hide contents links
2017-10-18 15:57:43 +02:00
Eelco Dolstra
d8d71ea4a3
hydra-server: Use server_store_uri instead of store_uri, if set
...
The store_uri may contain parameters that cause Nix to fail when
running under the hydra-server user (e.g. the signing key).
2017-10-18 15:33:55 +02:00
Eelco Dolstra
62c6cca937
Make one-click installs work for binary cache stores
...
This requires setting binary_cache_public_uri in hydra.conf.
2017-10-18 14:09:28 +02:00
Eelco Dolstra
44ef743d84
Hide some things that require a local store
2017-10-18 13:44:41 +02:00
Eelco Dolstra
40a9b70df2
Shut up warning
2017-10-18 13:39:39 +02:00
Eelco Dolstra
30943dd217
Detect MIME type
2017-10-18 13:38:34 +02:00
Eelco Dolstra
42fbde0383
Use "nix cat-store" to serve files from the Nix store
...
This makes downloading/viewing build results work with binary cache
stores. For good performance, this should be used in conjunction with
ca580bec35
,
i.e. you should set store_uri to something like
s3://my-cache?local-nar-cache=/tmp/nar-cache
to cache NARs between requests.
2017-10-18 12:48:31 +02:00
Eelco Dolstra
bc60fccf78
Remove remaining references to store_mode etc.
2017-10-18 12:23:07 +02:00
Eelco Dolstra
cc64e51f75
USER -> LOGNAME for consistency
...
Don't remember why we use LOGNAME. Also ensure that it's set.
2017-10-18 11:23:00 +02:00
Will Dietz
c81594f470
hydra-queue-runner: ensure roots directory exists
...
Fixes #513
2017-10-17 13:04:56 -05:00
Eelco Dolstra
45b138373b
hydra-queue-runner: Write GC roots for outputs paths
...
We lost this behaviour somewhere. So build outputs could be GC'ed when
running the collector with --option gc-keep-outputs false.
2017-10-12 18:55:38 +02:00