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
68aad22d19
Add GitlabPulls input plugin
2018-10-15 14:45:26 +02:00
Kevin Quick
d9515b208c
Update prompt for Local path input to indicate a URL is also valid.
...
The PathInput input for local paths was previously enhanced to allow
URLs for which it would use a nix-prefetch-url operation. This change
updates the prompt for the declarative input type to indicate this
capability.
2018-09-09 22:08:06 -07: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
Nathan van Doorn
a77954be4d
Allow for precisely one instance of RunCommand plugin
2018-08-21 15:52:41 +01: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
Philipp Hausmann
f738f6feb3
Add BitBucket pull request support
2018-06-22 11:22:54 +02:00
Michael Bishop
4015bca225
fix a stray newline in a path
2018-03-16 13:04:48 -03: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
8913c682cf
Doh
2017-12-25 15:02:17 +01:00
Eelco Dolstra
100249c066
Use git rev-list --count
2017-11-14 16:18:54 +01: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
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
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
7e6486e694
Move log compression to a plugin
2017-03-15 16:59:57 +01:00
Eelco Dolstra
9f6afb3375
Lock paths in the scm cache
...
This is necessary now that hydra-evaluator runs multiple evaluations
in parallel, to prevent corruption of Git/Mercurial clones.
2017-02-21 18:12:52 +01:00
Shea Levy
ae24e7fb31
GithubStatus: Include the full job name and build ID in the context.
...
Build ID can be omitted by setting excludeBuildFromContext in config
2016-04-12 15:19:05 -04:00
Shea Levy
0d0b925af1
Add a plugin to interact with the github status API.
...
Mutliple <githubstatus> sections are possible:
* jobs: regexp for jobs to match
* inputs: the input which corresponds to the github repo/rev whose
status we want to report. Can be repeated
* authorization: Verbatim contents of the Authorization header. See
https://developer.github.com/v3/#authentication .
2016-04-12 14:42:01 -04:00
Shea Levy
0f5937503e
SlackNotification: Use bigger images
2016-03-01 11:25:18 -05:00
Shea Levy
006ac1fc03
Add slack plugin.
...
Respects <slack> blocks in the hydra config, with attributes:
* jobs: a regexp matching the job name (in the format project:jobset:job)
* url: The URL to a slack incoming webhook
* force: If true, always send messages. Otherwise, only when the build status changes
Multiple <slack> blocks are allowed
2016-02-29 14:48:36 -05: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
dd4f6e695e
Merge branch 'master' into build-ng
2015-07-06 17:17:51 +02:00
Eelco Dolstra
ccf6e6062c
Store full Mercurial revision hashes
2015-07-06 17:17:17 +02:00
Eelco Dolstra
309ef5baa9
Merge branch 'master' into build-ng
2015-07-06 15:57:09 +02:00
Eelco Dolstra
b85e9ef1cd
Support using Git revisions as branch names
2015-07-06 15:56:24 +02:00
Eelco Dolstra
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
Rob Vermaas
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
Eelco Dolstra
c0ca5489e1
Don't use given/when
...
These give warnings in Perl >= 5.18:
given is experimental at /home/hydra/src/hydra/src/lib/Hydra/Helper/CatalystUtils.pm line 241.
when is experimental at /home/hydra/src/hydra/src/lib/Hydra/Helper/CatalystUtils.pm line 242.
...
2014-12-12 11:27:17 +01:00
Shea Levy
e56e743f97
S3Backup: Create a proper nar
2014-12-10 23:06:52 -05:00
Shea Levy
208bbbb4b0
s3backup: Create temporary file in temp dir
2014-12-10 22:06:32 -05:00
Eelco Dolstra
5e265e6739
Tweak blame message
2014-11-19 15:24:31 +01:00
Eelco Dolstra
2d46741840
Fix message
2014-11-19 14:52:42 +01:00
Eelco Dolstra
8523130ebb
Use Email::MIME instead of Email::Simple
...
Email::Simple cannot handle non-ASCII characters.
Fixes #191 .
2014-11-19 14:45:46 +01:00
Rob Vermaas
55eb55478d
Allow HipChat notification on all builds, in stead of status changes only.
2014-10-21 07:50:12 +00:00
Eelco Dolstra
319e053368
Hopefully fix UTF-8 chars in Hipchat notification messages
2014-08-18 14:01:39 +02:00