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
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
Shea Levy
70eb67fe5b
Allow channels to be usefully imported by other nix expressions.
2018-05-25 11:22:20 -04: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
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
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
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
b7bc4384b7
Fix serving plain text files
2017-11-21 17:55:52 +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
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
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
Rob Vermaas
b645b03536
Fix string comparison
2017-09-25 11:54:55 +00:00
Rob Vermaas
2318baaade
Add 'readonly_ips' option, to allow readonly access for certain IPs when 'private' option is enabled.
2017-09-22 11:36:49 +00:00
Eelco Dolstra
d676c91bd5
Return Builds.drvpath in the JSON API
...
E.g.
curl -H 'Accept: application/json' http://127.0.0.4/build/3772858 | jq -r .drvpath
/nix/store/97vla79lavlcsk8milskr06rfm34bskx-patchelf-0.8pre843_f4522f4.drv
2017-09-12 18:42:18 +02:00
Shea Levy
a6d9201947
GithubStatus: Allow config to specify the integration description and context
2017-07-24 15:44:10 -04:00
Eelco Dolstra
064fd20b6f
Merge pull request #494 from Chakerbh/master
...
Use build id for bitbucket Key
2017-07-11 17:41:22 +02:00
Chaker Benhamed
c5666095a1
Use build id for bitbucket Key
2017-07-11 16:13:56 +01:00
Eelco Dolstra
f95516a82b
Merge pull request #466 from cyraxjoe/configurable-git-input
...
Allow to configure the timeout value for the GitInput plugin in different places.
2017-07-07 11:03:06 +02:00
Chaker Benhamed
8da3ca6e94
Skip the input if the emailResponsible field is disabled
2017-07-05 15:51:20 +01:00
Chaker Benhamed
fd8cb39a11
Add BitBucket plugin
...
This plugin will post to the build status system in BitBucket. In order
to use it you need to add to ExtraConfig
<bitbucket>
username = bitbucket_username
password = bitbucket_password
</bitbucket>
You can use an application password https://blog.bitbucket.org/2016/06/06/app-passwords-bitbucket-cloud/
2017-07-04 10:07:25 +01:00
Shea Levy
207d2dd10c
GithubStatus: Don't send a pending status for already-finished builds
...
Fixes #488
2017-06-21 14:51:09 -04:00
michael bishop
6e4a7a30f7
fix github pulls json to be deterministic
2017-06-21 09:35:26 -03:00
Shea Levy
582c399420
Add buildQueued plugin hook
2017-05-24 09:45:31 -04:00
Shea Levy
3d044d2ec2
Github status API: Pull authorization from github_authorization by default
2017-05-24 08:53:29 -04:00
Shea Levy
08708e899a
GithubPulls: Add 'revision' to the input
2017-05-24 07:33:06 -04:00
Shea Levy
c6f0753435
Add GithubPulls input plugin.
...
This can be used with declarative projects to build PRs.
The github_authorization section should contain verbatim Authorization header contents keyed by repo owner for private repos
2017-05-24 05:31:27 -04:00
Eelco Dolstra
941665044e
/api/scmdiff: Set correct MIME type
...
It was set to application/json but should be text/plain.
2017-05-05 15:58:38 +02:00
Joel Rivera
a39ffba042
Include the project and jobset names in the configuration blocks
...
to set the timeout for a specific input in the GitInput plugin.
Remove the comments about using inputs with spaces.
2017-04-28 21:43:35 -05:00
Shea Levy
86aa851d8d
Merge branch 'circleci-plugin'
2017-04-24 11:28:09 -04:00
Shea Levy
4c26cf0c81
getHydraConfig: Allow multiple includes
2017-04-20 08:00:09 -04:00
Shea Levy
f4b4ee5751
Add CircleCI plugin.
2017-04-19 15:20:09 -04:00
Joel Rivera
af2f8122e3
Allow to configure the timeout value for the GitInput plugin in different places.
...
1. From the hydra configuration file.
The configuration is loaded from the "git-input" block.
Currently only the "timeout" variable is been looked up in the file.
<git-input>
# general timeout
timeout = 400
<input-name>
# specific timeout for a particular input name
timeout = 400
</input-name>
# use quotes when the input name has spaces
<"foot with spaces">
# specific timeout for a particular input name
timeout = 400
</"foo with spaces">
</git-input>
2. As an argument in the input value after the repo url and branch (and after the deepClone if is defined)
"timeout=<value>"
The preference on which value is used:
1. input value
2. Block with the name of the input in the <git-input> block
3. "timeout" inside the <git-input> block
4. Default value of 600 seconds. (original hard-coded value)
The code is generalized for more values to be configured, it might be too much
for a single value on a single plugin.
2017-04-13 19:10:53 -05:00
Eelco Dolstra
c2c2633e50
Fix link to cached build log
...
Fixes #462 .
2017-04-11 14:25:48 +02:00
Eelco Dolstra
433b94ee68
Fix Mercurial diff
...
It only showed the log messages of $rev1 and $rev2. Now it shows the
range $rev1::$rev2, excluding $rev1.
2017-04-11 13:39:54 +02:00
Shea Levy
7e3f12fe10
Merge branch 'decl-project-remote-store'
2017-04-10 11:36:41 -04:00
Eelco Dolstra
fec895a642
hydra-server: Support logs in S3
2017-04-05 17:55:56 +02:00
Shea Levy
a738f826e8
declarative projects: Pull jobset spec build from the remote store
...
Fixes #443
2017-04-01 10:38:49 -04:00