travis_bundle_cache-rentify 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Y2YzMjhhNTg5MWJjYzg1NTRhN2Q4NzkwYTQzNjU1MmFkOWE1ZmE0NQ==
5
+ data.tar.gz: !binary |-
6
+ YTRjYWU5MmU5NmUxYTkzYzI1ZTgxZTIzZWZmNzI0YmU0M2Y4YWRhOQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MDFhYzdjYWExMDFlOTI0NTEwODNmMjM2Y2ExMGFjMGU0Y2U1M2Y1Y2I4OTUz
10
+ MmRlMzE5OGY0OTA3MzUxMjA4NDVhZWU3Yjk3YjYwM2I5NjAwNWJkYmJlNjVl
11
+ NmMzZWQ3YjUzMjc0YTk3ZGY1YmU5YzZiZGFmMTdkNGYwMzI3ZjY=
12
+ data.tar.gz: !binary |-
13
+ ZjQzOWY5OTgyOWQxZGRiNmE1ZDNjMjdjYjIyOTIwOTFiYzIxMTQ1YjM0NzE0
14
+ ZTI0MGI1NWEzMTgwYjA1YTkzMDg0ZDY4YjU0MTk0YjEzZGM4Njc3MzgwMDA5
15
+ ODdjNTc3NWU2MjAyZTk5MGZmYmUzNDllMWE2YWIxMjkwZjk2MzI=
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ before_install:
6
+ - "mkdir ~/.gemcert && cd ~/.gemcert && gem cert --build test@example.com && cp gem-public_cert.pem $TRAVIS_BUILD_DIR/"
7
+ - "cd $TRAVIS_BUILD_DIR"
8
+ install: bundle install
9
+ script: rspec
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in travis_bundle_cache.gemspec
4
+ gemspec
5
+
6
+ gem 'rake'
7
+
8
+ group :test do
9
+ gem "coveralls", "~> 0.6.7", require: false
10
+ gem "rspec", "~> 2.14"
11
+ gem "fakefs", require: "fakefs/safe"
12
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 David Genord II
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,92 @@
1
+ Travis Bundle Cache
2
+ ===================
3
+ [![Gem Version](https://badge.fury.io/rb/travis_bundle_cache.png)](http://badge.fury.io/rb/travis_bundle_cache)
4
+ [![Build Status](https://travis-ci.org/collectiveidea/travis_bundle_cache.png?branch=master)](https://travis-ci.org/collectiveidea/travis_bundle_cache)
5
+ [![Code Climate](https://codeclimate.com/github/collectiveidea/travis_bundle_cache.png)](https://codeclimate.com/github/collectiveidea/travis_bundle_cache)
6
+ [![Coverage Status](https://coveralls.io/repos/collectiveidea/travis_bundle_cache/badge.png?branch=master)](https://coveralls.io/r/collectiveidea/travis_bundle_cache?branch=master)
7
+ [![Dependency Status](https://gemnasium.com/collectiveidea/travis_bundle_cache.png)](https://gemnasium.com/collectiveidea/travis_bundle_cache)
8
+
9
+ The primary purpose of this gem is to make [this](http://randomerrata.com/post/45827813818/travis-s3) easier and slightly more maintainable.
10
+
11
+ This gem loads, builds, and saves a cache of your bundled gems on S3 by *ONLY* modifying your project's .travis.yml file.
12
+
13
+ What you will need:
14
+ * A project on Travis CI
15
+ * An AWS account
16
+ * A "bundle install" that takes longer than "gem install nokogiri"
17
+
18
+ Usage
19
+ =====
20
+
21
+ 1. Set up a bucket on S3 in the US Standard region (us-east-1) (and possibly a new user via IAM)
22
+
23
+ 2. Setup your .travis.yml to include the following (NOTE: this must be done before the next steps)
24
+
25
+ ```yaml
26
+ env:
27
+ global:
28
+ - BUNDLE_ARCHIVE="your-bundle-name" # Default: "owner_name-repo_name"
29
+ - AWS_S3_REGION="us-east-1" # Default: "us-east-1" (recommended)
30
+ - AWS_S3_BUCKET="your-bucket-name"
31
+
32
+ before_install:
33
+ - 'echo ''gem: --no-ri --no-rdoc'' > ~/.gemrc'
34
+ # Better security (If only we could get Amazon to sign their gem)
35
+ - wget https://raw.github.com/collectiveidea/travis_bundle_cache/4753620b8f2bcfd0c5af85ccd68888c1f593a023/gem-public_cert.pem
36
+ - gem cert --add gem-public_cert.pem
37
+ - gem install aws-sdk
38
+ - gem install travis_bundle_cache -P HighSecurity
39
+ # Low security option
40
+ # - gem install travis_bundle_cache
41
+
42
+ install: travis_bundle_install
43
+
44
+ before_script:
45
+ - "travis_bundle_cache > ~/travis_bundle_cache.log &"
46
+
47
+ after_script:
48
+ - wait && cat ~/travis_bundle_cache.log
49
+ ```
50
+
51
+ 3. Install the travis gem (not the travis_bundle_cache gem)
52
+
53
+ ```bash
54
+ gem install travis
55
+ ```
56
+
57
+ 4. Log into Travis (from inside your project respository directory)
58
+
59
+ ```bash
60
+ travis login --auto
61
+ ```
62
+
63
+ 5. Encrypt your S3 credentials (be sure to add your actual credentials inside the double quotes)
64
+
65
+ ```bash
66
+ travis encrypt AWS_S3_KEY="" AWS_S3_SECRET="" --add
67
+ ```
68
+
69
+ Enjoy faster builds
70
+
71
+ Contributions
72
+ =============
73
+
74
+ TravisBundleCache is open source and contributions from the community are encouraged! No contribution is too small. Please consider:
75
+
76
+ * adding an awesome feature
77
+ * fixing a terrible bug
78
+ * updating documentation
79
+ * fixing a not-so-bad bug
80
+ * fixing typos
81
+
82
+ For the best chance of having your changes merged, please:
83
+
84
+ 1. Ask us! We'd love to hear what you're up to.
85
+ 2. Fork the project.
86
+ 3. Commit your changes and tests (if applicable (they're applicable)).
87
+ 4. Submit a pull request with a thorough explanation and at least one animated GIF.
88
+
89
+ Thanks
90
+ ======
91
+
92
+ Most of the credit for this gem goes to Random Errata and [this](http://randomerrata.com/post/45827813818/travis-s3) blog post
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+
4
+ require 'travis_bundle_cache/cache'
5
+
6
+ TravisBundleCache::Cache.new.cache_bundle
7
+
8
+ exit 0
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+
4
+ require 'travis_bundle_cache/cache'
5
+
6
+ TravisBundleCache::Cache.new.install
7
+
8
+ exit 0
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQ4wDAYDVQQDDAVkYXZp
3
+ ZDEeMBwGCgmSJomT8ixkARkWDmNvbGxlY3RpdmVpZGVhMRMwEQYKCZImiZPyLGQB
4
+ GRYDY29tMB4XDTEzMDgwMjE0MjAwN1oXDTE0MDgwMjE0MjAwN1owRTEOMAwGA1UE
5
+ AwwFZGF2aWQxHjAcBgoJkiaJk/IsZAEZFg5jb2xsZWN0aXZlaWRlYTETMBEGCgmS
6
+ JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO+X
7
+ lpzbJojxB0O/2nTxK2NdfgOd2EsnOZaezBZsGDZq0Vbnjec/tNrnsHdUM12LvP1h
8
+ ZuIx/IrAZj4wlsyZgUsKAQs9GXQCDzmKuwo3kmYtUDv55TQJKwDhtdwliTD82FOT
9
+ IkTUEcRZNhtb7ymzpK17p5iHaHL+4BgNs1fbciTxqI1xhh9TGyDOht++9dCjJVDV
10
+ I5nU8VMV8gkAkxA8AlTXNf3hWQNN3tBuvY5EMaG3beN52v+YYDW8Ko4GL16M+aOA
11
+ PShN16CdA5Jjc/hwe6gK175Ma9UTHwIoWDX2WBztM+cU0E27vxFxbe+il9mHk9wG
12
+ BzedoP1o5yNUovdOhIsCAwEAAaOBhDCBgTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
13
+ sDAdBgNVHQ4EFgQUozKz5aO8wO2w0VHWEbPR7x0nBlQwIwYDVR0RBBwwGoEYZGF2
14
+ aWRAY29sbGVjdGl2ZWlkZWEuY29tMCMGA1UdEgQcMBqBGGRhdmlkQGNvbGxlY3Rp
15
+ dmVpZGVhLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEANGHG41mjDpWNsdtjMq7lp5Dw
16
+ xgnf3D3Bz1/t2e4QimdTqniwudSE/P/HD/8HkEn9JMI39xQFyXpfWCFwS5kwsGle
17
+ qr/LzRfLXV3B11TciP10uMYmHQ+46AJ4mL2iyvmRsIKFU45gBpU1/2zJ44GGzYU1
18
+ cSKuuZ0obmZRTI0Vn54e2ofKnWZtylW0SYa9uQplEJK/Ttu88DL99WgwOyNdMlqg
19
+ FJkL4MD3SK4X13qDUlr6YzTkvc8MMfaECuzUIM6KqSGQnyZ16D2zLdZTtr0GPzJZ
20
+ SdQ0gsTaFvafp6C7hh//UHFI92FnVtzpV01oGPDikn3a2qc8eUPvULa2NlJRFQ==
21
+ -----END CERTIFICATE-----
@@ -0,0 +1,5 @@
1
+ require "travis_bundle_cache/cache"
2
+
3
+ module TravisBundleCache
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,87 @@
1
+ require "digest"
2
+ require "aws/s3"
3
+
4
+ module TravisBundleCache
5
+ class Cache
6
+ def initialize
7
+ @architecture = `uname -m`.strip
8
+ @bundle_archive = ENV['BUNDLE_ARCHIVE'] || ENV['TRAVIS_REPO_SLUG'].gsub(/\//, '-')
9
+ @file_name = "#{@bundle_archive}-#{@architecture}-#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}.tgz"
10
+ @file_path = File.expand_path("~/#{@file_name}")
11
+ @lock_file = File.join(File.expand_path(ENV["TRAVIS_BUILD_DIR"]), "Gemfile.lock")
12
+ @digest_filename = "#{@file_name}.sha2"
13
+ @old_digest_filename = File.expand_path("~/remote_#{@digest_filename}")
14
+ end
15
+
16
+ def install
17
+ run_command %(cd ~ && wget -O "remote_#{@file_name}" "#{storage[@file_name].url_for(:read)}" && tar -xf "remote_#{@file_name}")
18
+ run_command %(cd ~ && wget -O "remote_#{@file_name}.sha2" "#{storage[@digest_filename].url_for(:read)}")
19
+ run_command %(bundle install --without #{ENV['BUNDLE_WITHOUT'] || "development production"} --path=~/.bundle), retry: true
20
+ end
21
+
22
+ def cache_bundle
23
+ @bundle_digest = Digest::SHA2.file(@lock_file).hexdigest
24
+ @old_digest = File.exists?(@old_digest_filename) ? File.read(@old_digest_filename) : ""
25
+
26
+ archive_and_upload_bundle
27
+ end
28
+
29
+ def archive_and_upload_bundle
30
+ if @old_digest == ""
31
+ puts "=> There was no existing digest, uploading a new version of the archive"
32
+ else
33
+ puts "=> There were changes, uploading a new version of the archive"
34
+ puts " => Old checksum: #{@old_digest}"
35
+ puts " => New checksum: #{@bundle_digest}"
36
+
37
+ puts "=> Cleaning old gem versions from the bundle"
38
+ run_command "bundle clean"
39
+ end
40
+
41
+ puts "=> Preparing bundle archive"
42
+ run_command %(cd ~ && tar -cjf "#{@file_name}" .bundle), exit_on_error: true
43
+
44
+ puts "=> Uploading the bundle"
45
+ storage[@file_name].write(Pathname.new(@file_path), :reduced_redundancy => true)
46
+
47
+ puts "=> Uploading the digest file"
48
+ storage[@digest_filename].write(@bundle_digest, :content_type => "text/plain", :reduced_redundancy => true)
49
+
50
+ puts "All done now."
51
+ end
52
+
53
+ protected
54
+
55
+ def run_command(cmd, opts = {})
56
+ tries = 1
57
+ puts "Running: #{cmd}"
58
+ while true
59
+ IO.popen(cmd) do |f|
60
+ begin
61
+ print f.readchar while true
62
+ rescue EOFError
63
+ end
64
+ end
65
+
66
+ if $?.exitstatus == 0
67
+ break
68
+ elsif opts[:retry] && tries < 3
69
+ tries += 1
70
+ puts "Retrying attempt #{tries} of 3"
71
+ elsif opts[:exit_on_error] || opts[:retry]
72
+ exit($?.exitstatus)
73
+ else
74
+ break
75
+ end
76
+ end
77
+ end
78
+
79
+ def storage
80
+ @storage ||= AWS::S3.new({
81
+ :access_key_id => ENV["AWS_S3_KEY"],
82
+ :secret_access_key => ENV["AWS_S3_SECRET"],
83
+ :region => ENV["AWS_S3_REGION"] || "us-east-1"
84
+ }).buckets[ENV["AWS_S3_BUCKET"]].objects
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,3 @@
1
+ module TravisBundleCache
2
+ VERSION = "0.0.6"
3
+ end
@@ -0,0 +1,12 @@
1
+ require "coveralls"
2
+ Coveralls.wear!
3
+
4
+ require "travis_bundle_cache"
5
+
6
+ require "fakefs/spec_helpers"
7
+
8
+ RSpec.configure do |config|
9
+ config.order = "random"
10
+ config.expect_with(:rspec) {|c| c.syntax = :expect }
11
+ config.include FakeFS::SpecHelpers
12
+ end
@@ -0,0 +1,128 @@
1
+ require "spec_helper"
2
+
3
+ describe TravisBundleCache::Cache do
4
+ before(:each) do
5
+ ENV["TRAVIS_REPO_SLUG"] = "owner/repo"
6
+ ENV["TRAVIS_BUILD_DIR"] = "/home/travis/owner/repo"
7
+ ENV["AWS_S3_KEY"] = "AN_ACCESS_KEY_ID"
8
+ ENV["AWS_S3_SECRET"] = "AN_SECRET_ACCESS_KEY"
9
+ ENV["AWS_S3_BUCKET"] = "a-bucket-name"
10
+
11
+ @uname = `uname -m`.strip
12
+ @ruby_version = "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
13
+ @cache = TravisBundleCache::Cache.new
14
+ end
15
+
16
+ describe 'install' do
17
+ before(:each) do
18
+ @cache.stub(:run_command)
19
+ end
20
+
21
+ it 'tries to download an available bundle archive' do
22
+ expect(@cache).to receive(:run_command).once.with(/\Acd ~ && wget -O "remote_owner-repo-#{@uname}-#{@ruby_version}\.tgz" "https:\/\/a-bucket-name\.s3\.amazonaws\.com\/owner-repo-#{@uname}-#{@ruby_version}.tgz\?AWSAccessKeyId=AN_ACCESS_KEY_ID&Expires=[0-9]+&Signature=[^"]+" && tar -xf "remote_owner-repo-#{@uname}-#{@ruby_version}\.tgz"\Z/)
23
+
24
+ @cache.install
25
+ end
26
+
27
+ it 'tries to download an available bundle archive signature' do
28
+ expect(@cache).to receive(:run_command).once.with(/\Acd ~ && wget -O "remote_owner-repo-#{@uname}-#{@ruby_version}\.tgz.sha2" "https:\/\/a-bucket-name\.s3\.amazonaws\.com\/owner-repo-#{@uname}-#{@ruby_version}.tgz.sha2\?AWSAccessKeyId=AN_ACCESS_KEY_ID&Expires=[0-9]+&Signature=[^"]+"\Z/)
29
+
30
+ @cache.install
31
+ end
32
+
33
+ it 'installs the bundle' do
34
+ expect(@cache).to receive(:run_command).once.with("bundle install --without development production --path=~\/.bundle", retry: true)
35
+
36
+ @cache.install
37
+ end
38
+ end
39
+
40
+ describe 'cache_bundle' do
41
+ before(:each) do
42
+ ENV['TRAVIS_PULL_REQUEST'] = 'false'
43
+ ENV['TRAVIS_BRANCH'] = 'master'
44
+
45
+ @cache.stub(:puts)
46
+ @cache.stub(:run_command)
47
+ AWS::S3::S3Object.any_instance.stub(:write)
48
+
49
+ FileUtils.mkdir_p(ENV["TRAVIS_BUILD_DIR"])
50
+ File.open(File.join(ENV["TRAVIS_BUILD_DIR"], 'Gemfile.lock'), 'w') {|f| f.puts "Some lock contents" }
51
+ end
52
+
53
+ it 'builds a new archive if one does not already exist' do
54
+ expect(@cache).to receive(:archive_and_upload_bundle).once.with(no_args)
55
+
56
+ @cache.cache_bundle
57
+ end
58
+
59
+ it 'builds a new archive if the sha has changed' do
60
+ FileUtils.mkdir_p("~/")
61
+ File.open(File.expand_path("~/remote_owner-repo-#{@uname}-#{@ruby_version}.tgz.sha2"), 'w') {|f| f.print "old sha hash" }
62
+ expect(@cache).to receive(:archive_and_upload_bundle).once.with(no_args)
63
+
64
+ @cache.cache_bundle
65
+ end
66
+
67
+ it 'does not build a new archive if the sha matches' do
68
+ FileUtils.mkdir_p("~/")
69
+ File.open(File.expand_path("~/remote_owner-repo-#{@uname}-#{@ruby_version}.tgz.sha2"), 'w') {|f| f.print "be7b966bd555fffd27c11f2557484501ad2ed482f1b6164457433800e163ae29" }
70
+ expect(@cache).to receive(:archive_and_upload_bundle).never
71
+ expect(@cache).to receive(:puts).with("=> There were no changes, doing nothing")
72
+
73
+ @cache.cache_bundle
74
+ end
75
+
76
+ it 'does not build a new archive for pull requests' do
77
+ ENV['TRAVIS_PULL_REQUEST'] = '1'
78
+ expect(@cache).to receive(:archive_and_upload_bundle).never
79
+ expect(@cache).to receive(:puts).with("=> This is a pull request, doing nothing")
80
+
81
+ @cache.cache_bundle
82
+ end
83
+
84
+ it 'does not build a new archive for a non master brnach' do
85
+ ENV['TRAVIS_BRANCH'] = 'not-master'
86
+ expect(@cache).to receive(:archive_and_upload_bundle).never
87
+ expect(@cache).to receive(:puts).with("=> This is not the master branch, doing nothing")
88
+
89
+ @cache.cache_bundle
90
+ end
91
+ end
92
+
93
+ describe 'archive_and_upload_bundle' do
94
+ before(:each) do
95
+ @cache.stub(:puts)
96
+ @cache.stub(:run_command)
97
+ AWS::S3::S3Object.any_instance.stub(:write)
98
+
99
+ @cache.instance_variable_set(:@bundle_digest, 'be7b966bd555fffd27c11f2557484501ad2ed482f1b6164457433800e163ae29')
100
+ end
101
+
102
+ it 'runs bundle clean if there was an old archive' do
103
+ @cache.instance_variable_set(:@old_digest, 'non-empty-string')
104
+ expect(@cache).to receive(:run_command).with("bundle clean")
105
+
106
+ @cache.archive_and_upload_bundle
107
+ end
108
+
109
+ it 'archives the current bundle directory' do
110
+ expect(@cache).to receive(:run_command).with(%{cd ~ && tar -cjf "owner-repo-#{@uname}-#{@ruby_version}.tgz" .bundle}, exit_on_error: true)
111
+
112
+ @cache.archive_and_upload_bundle
113
+ end
114
+
115
+ it 'sends the correct files to S3' do
116
+ storage = {
117
+ "owner-repo-#{@uname}-#{@ruby_version}.tgz" => double(AWS::S3::S3Object),
118
+ "owner-repo-#{@uname}-#{@ruby_version}.tgz.sha2" => double(AWS::S3::S3Object)
119
+ }
120
+ @cache.stub(:storage).and_return(storage)
121
+
122
+ expect(storage["owner-repo-#{@uname}-#{@ruby_version}.tgz"]).to receive(:write).with(Pathname.new(File.expand_path("~/owner-repo-#{@uname}-#{@ruby_version}.tgz")), reduced_redundancy: true)
123
+ expect(storage["owner-repo-#{@uname}-#{@ruby_version}.tgz.sha2"]).to receive(:write).with("be7b966bd555fffd27c11f2557484501ad2ed482f1b6164457433800e163ae29", content_type: 'text/plain', reduced_redundancy: true)
124
+
125
+ @cache.archive_and_upload_bundle
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'travis_bundle_cache/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "travis_bundle_cache-rentify"
8
+ spec.version = TravisBundleCache::VERSION
9
+ spec.authors = ["David Genord II"]
10
+ spec.email = ["david@collectiveidea.com"]
11
+ spec.description = %q{Cache the gem bundle for speedy travis builds}
12
+ spec.summary = %q{Cache the gem bundle for speedy travis builds}
13
+ spec.homepage = "https://github.com/rentify/travis_bundle_cache"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+ spec.executables = ["travis_bundle_cache", "travis_bundle_install"]
21
+
22
+ spec.add_dependency "bundler", "~> 1.3"
23
+ spec.add_dependency "aws-sdk"
24
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: travis_bundle_cache-rentify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - David Genord II
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Cache the gem bundle for speedy travis builds
42
+ email:
43
+ - david@collectiveidea.com
44
+ executables:
45
+ - travis_bundle_cache
46
+ - travis_bundle_install
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - .gitignore
51
+ - .travis.yml
52
+ - Gemfile
53
+ - LICENSE.txt
54
+ - README.md
55
+ - Rakefile
56
+ - bin/travis_bundle_cache
57
+ - bin/travis_bundle_install
58
+ - gem-public_cert.pem
59
+ - lib/travis_bundle_cache.rb
60
+ - lib/travis_bundle_cache/cache.rb
61
+ - lib/travis_bundle_cache/version.rb
62
+ - spec/spec_helper.rb
63
+ - spec/travis_bundle_cache_spec.rb
64
+ - travis_bundle_cache.gemspec
65
+ homepage: https://github.com/rentify/travis_bundle_cache
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 2.1.10
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: Cache the gem bundle for speedy travis builds
89
+ test_files:
90
+ - spec/spec_helper.rb
91
+ - spec/travis_bundle_cache_spec.rb