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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e981ba034ee74cacabe68112da703ecc235143c6
4
- data.tar.gz: fb4148b5189e9d41e9e0f42fd6b1c00c96119349
3
+ metadata.gz: 3e92f8dcab862595376767ad153f5af10f58fe03
4
+ data.tar.gz: faa361107dc75562fb1e489c9de37146b46fe131
5
5
  SHA512:
6
- metadata.gz: 8956e3aee3dfdf9ed82a7bf22e709c679fb90fd678d8caac877cb9797f858576e5ef3217351894588d335f90bf179da10b6d0370fcb2b85b66480789cecafbd2
7
- data.tar.gz: a7134211590bc96fd60409e17e7b89e8ffa794febb259c9972013a4928feaaf0ac89f495ee24b19b48ac130a31a74a9f9472e61d441285cc97ea2f0b156feae1
6
+ metadata.gz: e468c600deea736947a28bd5819aa8664e9f6881648c4a780893542e075052bf3235376282f40d5cef093a40ddc3b4c9674687115a518fc64664b446546f833b
7
+ data.tar.gz: 2aeea210ee39087490e759374e1a09793f41bd3d24d00fd761cc6eb9bc1f0df14088c13bf4672e11ae8979f2f0f4732640ce22a52ce970c40414b4337a658d6a
@@ -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
- before_script:
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=
@@ -1,12 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- architecture = `uname -m`.strip
4
- file_name = "#{ENV['BUNDLE_ARCHIVE']}-#{architecture}.tgz"
3
+ require_relative '../lib/bundle_cache'
5
4
 
6
- # See http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
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
- Dir.chdir(ENV['HOME'])
11
- `wget -O "remote_#{file_name}" "https://#{endpoint}/#{ENV['AWS_S3_BUCKET']}/#{file_name}" && tar -xf "remote_#{file_name}"`
12
- `wget -O "remote_#{file_name}.sha2" "https://#{endpoint}/#{ENV['AWS_S3_BUCKET']}/#{file_name}.sha2"`
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
@@ -1,5 +1,6 @@
1
1
  require "bundle_cache/version"
2
2
  require "bundle_cache/cache"
3
+ require "bundle_cache/install"
3
4
 
4
5
  module BundleCache
5
6
  end
@@ -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 => :public_read) do |upload|
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 => :public_read, :content_type => "text/plain")
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
@@ -1,3 +1,3 @@
1
1
  module BundleCache
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
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.6
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-19 00:00:00.000000000 Z
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: