Skip to content

Latest commit

 

History

History
75 lines (50 loc) · 1.56 KB

README.md

File metadata and controls

75 lines (50 loc) · 1.56 KB

bunch

General purpose utility to cache project dependencies or artifacts to Amazon S3.

Good for caching Rubygems or NPM bundles.

Overview

Bunch is a tool to upload/download contents of any directory from Amazon S3. Initially created to cache Rubygems/NPM bundles as compressed tarballs (tar.gz) to speed up CI build times.

Usage

Run bunch upload/download command with the following options:

bunch [upload|download] \
  --prefix=my-project \
  --path=path/to/dir \
  --manifest=path/to/manifest
  --s3-key=key \
  --s3-secret=secret \
  --s3-bucket=bucket

Options:

  • prefix - Filename prefix. Archives are uploaded in the format: http://s3.amazonaws.com/bucket/prefix-sha1-arch.tar.gz
  • path - Path to directory that should be cached
  • manifest - Path to file that should be used to calculate checksum (Gemfile.lock, package.json, etc).

If you don't want to specify Amazon S3 credentials in terminal, you can always export variables into your environment and they will be loaded automatically.

Example:

export S3_KEY=key
export S3_SECRET=secret
export S3_BUCKET=bucket

Build

Project requires Go 1.2.

To build a binary run, install dependencies and execute build command:

go get
go build

To build for multiple operating systems and architectures, use gox.

Test

Install testify library:

go get github.com/stretchr/testify/assert

And execute test suite:

go test

License

The MIT License (MIT)

Copyright (c) 2014 Dan Sosedoff, dan.sosedoff@gmail.com