bundle_cache 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -8
- data/bin/bundle_cache_install +10 -8
- data/lib/bundle_cache.rb +1 -0
- data/lib/bundle_cache/cache.rb +4 -2
- data/lib/bundle_cache/install.rb +48 -0
- data/lib/bundle_cache/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e92f8dcab862595376767ad153f5af10f58fe03
|
4
|
+
data.tar.gz: faa361107dc75562fb1e489c9de37146b46fe131
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e468c600deea736947a28bd5819aa8664e9f6881648c4a780893542e075052bf3235376282f40d5cef093a40ddc3b4c9674687115a518fc64664b446546f833b
|
7
|
+
data.tar.gz: 2aeea210ee39087490e759374e1a09793f41bd3d24d00fd761cc6eb9bc1f0df14088c13bf4672e11ae8979f2f0f4732640ce22a52ce970c40414b4337a658d6a
|
data/.travis.yml
CHANGED
@@ -1,25 +1,19 @@
|
|
1
|
-
---
|
2
1
|
language: ruby
|
3
2
|
rvm:
|
4
3
|
- 1.9.3
|
5
4
|
- 2.0.0
|
6
|
-
script: true
|
7
5
|
bundler_args: --without development --path=~/.bundle
|
8
6
|
before_install:
|
9
7
|
- "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
|
10
|
-
|
8
|
+
script:
|
11
9
|
- cd $TRAVIS_BUILD_DIR
|
12
10
|
- rake build
|
13
11
|
- gem install pkg/*.gem
|
14
12
|
- bundle_cache_install
|
15
|
-
script: true
|
16
13
|
after_script:
|
17
14
|
- bundle_cache
|
18
15
|
env:
|
19
16
|
global:
|
20
17
|
- BUNDLE_ARCHIVE="bundle_cache_test"
|
21
18
|
- AWS_S3_BUCKET="travis.data-axle.infogroup.com"
|
22
|
-
- secure:
|
23
|
-
etZRmvUnoJdOOU8jYuDnpWQhFLPCwGnP8cELYJU+ogrfPA3BmxeRj0qL5odK
|
24
|
-
NqcdSo3ff19du9sLAVIjumhbvaociGVPUrScF3KKaKTPmBnFfhtOGgN18AIB
|
25
|
-
398/7K4HEItFgjCOQRstLGA2G3H7vq8nAsIWMavJ6lrAZEQUJIY=
|
19
|
+
- secure: OpVVRrTLeXspiOE0TMXxah7QHPZasA4n+xf9XUwTh0Tq1z6F6Ojq8kz8XvRQOS9VsWKj5Xx8gmrJbzUx2MmKbJZvKi0f19oqJiEstVVfR+ATWzTaDkfl31WUowmvX7QVh8+ejfi9bQDMj9HkAkn6p0uGWZGDZQd5Q/OyVMka/9o=
|
data/bin/bundle_cache_install
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
file_name = "#{ENV['BUNDLE_ARCHIVE']}-#{architecture}.tgz"
|
3
|
+
require_relative '../lib/bundle_cache'
|
5
4
|
|
6
|
-
|
7
|
-
region = ENV['AWS_S3_REGION'] || 'us-east-1'
|
8
|
-
endpoint = region == 'us-east-1' ? 's3.amazonaws.com' : "s3-#{region}.amazonaws.com"
|
5
|
+
required_env = %w(AWS_S3_KEY AWS_S3_SECRET AWS_S3_BUCKET BUNDLE_ARCHIVE)
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
required_env.each do |var|
|
8
|
+
unless ENV[var]
|
9
|
+
puts "Missing ENV[#{var}]"
|
10
|
+
exit 1
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
BundleCache.install
|
data/lib/bundle_cache.rb
CHANGED
data/lib/bundle_cache/cache.rb
CHANGED
@@ -10,6 +10,8 @@ module BundleCache
|
|
10
10
|
:region => ENV["AWS_S3_REGION"] || "us-east-1"
|
11
11
|
})
|
12
12
|
|
13
|
+
acl_to_use = ENV["KEEP_BUNDLE_PRIVATE"] ? :private : :public_read
|
14
|
+
|
13
15
|
bucket_name = ENV["AWS_S3_BUCKET"]
|
14
16
|
architecture = `uname -m`.strip
|
15
17
|
|
@@ -52,7 +54,7 @@ module BundleCache
|
|
52
54
|
gem_archive = bucket.objects[file_name]
|
53
55
|
|
54
56
|
puts " => Uploading #{parts.length} parts"
|
55
|
-
gem_archive.multipart_upload(:acl =>
|
57
|
+
gem_archive.multipart_upload(:acl => acl_to_use) do |upload|
|
56
58
|
parts.each_with_index do |part, index|
|
57
59
|
puts " => Uploading #{part}"
|
58
60
|
File.open part do |part_file|
|
@@ -65,7 +67,7 @@ module BundleCache
|
|
65
67
|
|
66
68
|
puts "=> Uploading the digest file"
|
67
69
|
hash_object = bucket.objects[digest_filename]
|
68
|
-
hash_object.write(bundle_digest, :acl =>
|
70
|
+
hash_object.write(bundle_digest, :acl => acl_to_use, :content_type => "text/plain")
|
69
71
|
end
|
70
72
|
|
71
73
|
puts "All done now."
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "digest"
|
2
|
+
require "aws-sdk"
|
3
|
+
|
4
|
+
module BundleCache
|
5
|
+
def self.install
|
6
|
+
architecture = `uname -m`.strip
|
7
|
+
file_name = "#{ENV['BUNDLE_ARCHIVE']}-#{architecture}.tgz"
|
8
|
+
digest_filename = "#{file_name}.sha2"
|
9
|
+
bucket_name = ENV["AWS_S3_BUCKET"]
|
10
|
+
|
11
|
+
AWS.config({
|
12
|
+
:access_key_id => ENV["AWS_S3_KEY"],
|
13
|
+
:secret_access_key => ENV["AWS_S3_SECRET"],
|
14
|
+
:region => ENV["AWS_S3_REGION"] || "us-east-1"
|
15
|
+
})
|
16
|
+
s3 = AWS::S3.new
|
17
|
+
bucket = s3.buckets[bucket_name]
|
18
|
+
|
19
|
+
gem_archive = bucket.objects[file_name]
|
20
|
+
hash_object = bucket.objects[digest_filename]
|
21
|
+
|
22
|
+
Dir.chdir(ENV['HOME'])
|
23
|
+
|
24
|
+
puts "=> Downloading the bundle"
|
25
|
+
File.open("remote_#{file_name}", 'wb') do |file|
|
26
|
+
gem_archive.read do |chunk|
|
27
|
+
file.write(chunk)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
puts " => Completed bundle download"
|
31
|
+
|
32
|
+
puts "=> Extract the bundle"
|
33
|
+
`tar -xf "remote_#{file_name}"`
|
34
|
+
|
35
|
+
puts "=> Downloading the digest file"
|
36
|
+
File.open("remote_#{file_name}.sha2", 'wb') do |file|
|
37
|
+
hash_object.read do |chunk|
|
38
|
+
file.write(chunk)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
puts " => Completed digest download"
|
42
|
+
|
43
|
+
puts "=> All done!"
|
44
|
+
rescue AWS::S3::Errors::NoSuchKey
|
45
|
+
puts "There's no such archive!"
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/lib/bundle_cache/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundle_cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Barendt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-09-
|
12
|
+
date: 2013-09-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk
|
@@ -87,6 +87,7 @@ files:
|
|
87
87
|
- bundle_cache.gemspec
|
88
88
|
- lib/bundle_cache.rb
|
89
89
|
- lib/bundle_cache/cache.rb
|
90
|
+
- lib/bundle_cache/install.rb
|
90
91
|
- lib/bundle_cache/version.rb
|
91
92
|
homepage: https://github.com/data-axle/bundle_cache
|
92
93
|
licenses:
|