Hydra, for Lix
Find a file
Shea Levy 74388353b5 Add a plugin for backing up builds in s3
In your hydra config, you can add an arbitrary number of <s3config>
sections, with the following options:

* name (required): Bucket name
* jobs (required): A regex to match job names (in project:jobset:job
  format) that should be backed up to this bucket
* compression_type: bzip2 (default), xz, or none
* prefix: String to prepend to all hydra-created s3 keys (if this is
  meant to represent a directory, you should include the trailing slash,
  e.g. "cache/"). Default "".

After each build with an output (i.e. successful or failed-with-output
builds), the output path and its closure are uploaded to the bucket as
.nar files, with corresponding .narinfos to enable use as a binary
cache.

This plugin requires that s3 credentials be available. It uses
Net::Amazon::S3, which as of this commit the nixpkgs version can
retrieve s3 credentials from the AWS_ACCESS_KEY_ID and
AWS_SECRET_ACCESS_KEY environment variables, or from ec2 instance
metadata when using an IAM role.

This commit also adds a hydra-s3-backup-collect-garbage program, which
uses hydra's gc roots directory to determine which paths are live, and
then deletes all files except nix-cache-info and any .nar or .narinfo
files corresponding to live paths. hydra-s3-backup-collect-garbage
respects the prefix configuration option, so it won't delete anything
outside of the hierarchy you give it, and it has the same credential
requirements as the plugin. Probably a timer unit running the garbage
collection periodically should be added to hydra-module.nix

Note that two of the added tests fail, due to a bug in the interaction
between Net::Amazon::S3 and fake-s3. Those behaviors work against real
s3 though, so I'm committing this even with the broken tests.

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-09-18 18:32:58 +02:00
doc Add the actual file 2013-07-19 15:02:01 +02:00
src Add a plugin for backing up builds in s3 2013-09-18 18:32:58 +02:00
tests Add a plugin for backing up builds in s3 2013-09-18 18:32:58 +02:00
.gitignore Add some gitignores 2013-04-26 17:51:05 +02:00
bootstrap hydra: Simplify `bootstrap'. 2011-01-14 10:52:47 +00:00
configure.ac Use evalFile() instead of parseExprFromFile() 2013-09-06 15:17:27 +00:00
COPYING hydra: revert license change 2010-03-29 14:16:46 +00:00
dev-shell Tweaks for nix-shell 2013-07-19 14:36:52 +02:00
hydra-module.nix Whoops 2013-07-28 12:16:46 -04:00
INSTALL hydra: use autoconf/-make 2010-09-30 14:29:15 +00:00
Makefile.am Install hydra-module.nix into $out/share/nix 2013-07-28 11:24:31 -04:00
release.nix Add a plugin for backing up builds in s3 2013-09-18 18:32:58 +02:00
version hydra: fix tarball build, add pre suffix to tarballs 2010-09-30 15:02:42 +00:00