Caches bundled gems to S3 to speed up Travis builds
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

This project is no longer required for Travis builds.

Travis now implements caching, so this gem is no longer required for speeding up your builds. Private repos get it as well as containerized builds.


Build Status

Utility for caching bundled gems on S3. Useful for speeding up Travis builds - it doesn't need to wait for bundle install to download/install all gems.


Adding this to your Gemfile defeats the purpose. Instead, run

$ gem install bundle_cache


You'll need to set some environment variables to make this work.

AWS_ACCESS_KEY_ID=<your aws access key>
AWS_SECRET_ACCESS_KEY=<your aws secret>
AWS_S3_BUCKET=<your bucket name>
BUNDLE_ARCHIVE=<the filename to use for your cache>

Optionally, you can set the AWS_DEFAULT_REGION variable if you don't use us-east-1.

If you're using IAM roles for your S3 credentials you might run into issues like "The AWS Access Key Id you provided does not exist in our records." In this case you wont need the AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY only the AWS_SESSION_TOKEN.

AWS_SESSION_TOKEN=<your aws session token>

Travis configuration

Add these to your Travis configuration:

bundler_args: --without development --path=~/.bundle
- "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
- gem install bundler bundle_cache
- bundle_cache_install
- bundle_cache
  - BUNDLE_ARCHIVE="your_project_bundle"
  - AWS_S3_BUCKET="your_bucket"
  - RAILS_ENV=test

You'll also want to add your AWS credentials to a secure section in there. Full instructions are on Matias' site below, but if you've already added the above Travis configuration, this will add the AWS credentials:

  1. Install the travis gem with gem install travis
  2. Log into Travis with travis login --auto (from inside your project respository directory)
  3. Encrypt your S3 credentials with: travis encrypt AWS_ACCESS_KEY_ID="" AWS_SECRET_ACCESS_KEY="" --add (be sure to add your actual credentials inside the double quotes)


This code was originally written by Matias Korhonen and is available at It is MIT licensed.