cartage-s3 1.0
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 +7 -0
- data/.autotest +27 -0
- data/.gemtest +1 -0
- data/.minitest.rb +2 -0
- data/Contributing.rdoc +63 -0
- data/Gemfile +9 -0
- data/History.rdoc +5 -0
- data/Licence.rdoc +27 -0
- data/Manifest.txt +12 -0
- data/README.rdoc +45 -0
- data/Rakefile +56 -0
- data/lib/cartage/s3.rb +151 -0
- data/lib/cartage/s3/command.rb +43 -0
- metadata +211 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 16aa1d98e9a68dba8de3548a4618047e0774861a
|
4
|
+
data.tar.gz: 779253a86e9be288e0ed0ae36bfb438bc74f75f6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a88299b376895aeff8d1521f48e71eb551f86dfbb0d35bd9954babe25bda0e1433839a6db4bce0995ac653b4618c937ba662b2cbddeb20bcc021bbe3dd60915c
|
7
|
+
data.tar.gz: c5a70b38350fd3db62027d9e11d81793c0485eb76f59a5d156987fbd7d1647315c59ea0dfc57b4fc86997daf9f113f5816bff6c889746cac89e6fec0230eb1e7
|
data/.autotest
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require "autotest/restart"
|
4
|
+
|
5
|
+
Autotest.add_hook :initialize do |at|
|
6
|
+
# .minitest.rb ensures that the gem version of minitest is used.
|
7
|
+
at.testlib = ".minitest.rb"
|
8
|
+
# at.testlib = "minitest/unit"
|
9
|
+
#
|
10
|
+
# at.extra_files << "../some/external/dependency.rb"
|
11
|
+
#
|
12
|
+
# at.libs << ":../some/external"
|
13
|
+
#
|
14
|
+
# at.add_exception "vendor"
|
15
|
+
#
|
16
|
+
# at.add_mapping(/dependency.rb/) do |f, _|
|
17
|
+
# at.files_matching(/test_.*rb$/)
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# %w(TestA TestB).each do |klass|
|
21
|
+
# at.extra_class_map[klass] = "test/test_misc.rb"
|
22
|
+
# end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Autotest.add_hook :run_command do |at|
|
26
|
+
# system "rake build"
|
27
|
+
# end
|
data/.gemtest
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/.minitest.rb
ADDED
data/Contributing.rdoc
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
== Contributing
|
2
|
+
|
3
|
+
We value any contribution to cartage-s3 you can provide: a bug report, a
|
4
|
+
feature request, or code contributions.
|
5
|
+
|
6
|
+
cartage-s3 has a few contribution guidelines:
|
7
|
+
|
8
|
+
* Changes *will* *not* be accepted without tests. The test suite is written
|
9
|
+
with {Minitest}[https://github.com/seattlerb/minitest].
|
10
|
+
* Match our coding style.
|
11
|
+
* Use a thoughtfully-named topic branch that contains your change. Rebase your
|
12
|
+
commits into logical chunks as necessary.
|
13
|
+
* Use {quality commit messages}[http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html].
|
14
|
+
* Do not change the version number; when your patch is accepted and a release
|
15
|
+
is made, the version will be updated at that point.
|
16
|
+
* Submit a GitHub pull request with your changes.
|
17
|
+
|
18
|
+
=== Test Dependencies
|
19
|
+
|
20
|
+
cartage-s3 uses Ryan Davis’s {Hoe}[https://github.com/seattlerb/hoe] to manage
|
21
|
+
the release process, and it adds a number of rake tasks. You will mostly be
|
22
|
+
interested in:
|
23
|
+
|
24
|
+
$ rake
|
25
|
+
|
26
|
+
which runs the tests the same way that:
|
27
|
+
|
28
|
+
$ rake test
|
29
|
+
$ rake travis
|
30
|
+
|
31
|
+
will do.
|
32
|
+
|
33
|
+
To assist with the installation of the development dependencies for cartage-s3,
|
34
|
+
I have provided the simplest possible Gemfile pointing to the (generated)
|
35
|
+
+cartage-s3.gemspec+ file. This will permit you to do:
|
36
|
+
|
37
|
+
$ bundle install
|
38
|
+
|
39
|
+
to get the development dependencies. If you aleady have +hoe+ installed, you
|
40
|
+
can accomplish the same thing with:
|
41
|
+
|
42
|
+
$ rake newb
|
43
|
+
|
44
|
+
This task will install any missing dependencies, run the tests/specs, and
|
45
|
+
generate the RDoc.
|
46
|
+
|
47
|
+
=== Workflow
|
48
|
+
|
49
|
+
Here's the most direct way to get your work merged into the project:
|
50
|
+
|
51
|
+
* Fork the project.
|
52
|
+
* Clone down your fork (<tt>git clone git://github.com/KineticCafe/cartage-s3.git</tt>).
|
53
|
+
* Create a topic branch to contain your change (<tt>git checkout -b my\_awesome\_feature</tt>).
|
54
|
+
* Hack away, add tests. Not necessarily in that order.
|
55
|
+
* Make sure everything still passes by running +rake+.
|
56
|
+
* If necessary, rebase your commits into logical chunks, without errors.
|
57
|
+
* Push the branch up (<tt>git push origin my\_awesome\_feature</tt>).
|
58
|
+
* Create a pull request against KineticCafe/cartage-s3 and describe
|
59
|
+
what your change does and the why you think it should be merged.
|
60
|
+
|
61
|
+
=== Contributors
|
62
|
+
|
63
|
+
* Austin Ziegler created cartage-s3.
|
data/Gemfile
ADDED
data/History.rdoc
ADDED
data/Licence.rdoc
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
== Licence
|
2
|
+
|
3
|
+
This software is available under an MIT-style licence.
|
4
|
+
|
5
|
+
* Copyright 2015 Kinetic Cafe
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
8
|
+
this software and associated documentation files (the "Software"), to deal in
|
9
|
+
the Software without restriction, including without limitation the rights to
|
10
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
11
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
12
|
+
so, subject to the following conditions:
|
13
|
+
|
14
|
+
* The names of its contributors may not be used to endorse or promote
|
15
|
+
products derived from this software without specific prior written
|
16
|
+
permission.
|
17
|
+
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
19
|
+
copies or substantial portions of the Software.
|
20
|
+
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
27
|
+
SOFTWARE.
|
data/Manifest.txt
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
= cartage-s3 by Kinetic Cafe
|
2
|
+
|
3
|
+
code :: https://github.com/KineticCafe/cartage-s3/
|
4
|
+
issues :: https://github.com/KineticCafe/cartage-s3/issues
|
5
|
+
continuous integration :: {<img src="https://travis-ci.org/KineticCafe/cartage-s3.png" />}[https://travis-ci.org/KineticCafe/cartage-s3]
|
6
|
+
|
7
|
+
== Description
|
8
|
+
|
9
|
+
cartage-s3 is a plug-in for {cartage}[https://github.com/KineticCafe/cartage]
|
10
|
+
to upload the built package to Amazon's S3 or a service with a similar
|
11
|
+
interface. Cartage provides a repeatable means to create a package for a Rails
|
12
|
+
application that can be used in deployment with a configuration tool like
|
13
|
+
Ansible, Chef, Puppet, or Salt. The package is created with its dependencies
|
14
|
+
bundled in `vendor/bundle`, so it can be deployed in environments with strict
|
15
|
+
access control rules and without requiring development tool access.
|
16
|
+
|
17
|
+
== Synopsis
|
18
|
+
|
19
|
+
# Build a package from the current machine, using the Manifest.txt, and
|
20
|
+
# uploads it to AWS S3.
|
21
|
+
cartage s3
|
22
|
+
|
23
|
+
== Install
|
24
|
+
|
25
|
+
Add cartage-s3 to your Gemfile:
|
26
|
+
|
27
|
+
gem 'cartage-s3', '~> 1.0'
|
28
|
+
|
29
|
+
Or manually install:
|
30
|
+
|
31
|
+
% gem install cartage-s3
|
32
|
+
|
33
|
+
== cartage-s3 Semantic Versioning
|
34
|
+
|
35
|
+
cartage-s3 uses a {Semantic Versioning}[http://semver.org/] scheme with one
|
36
|
+
change:
|
37
|
+
|
38
|
+
* When PATCH is zero (+0+), it will be omitted from version references.
|
39
|
+
|
40
|
+
cartage-s3 will generally track cartage for major versions to ensure plugin API
|
41
|
+
compatibility.
|
42
|
+
|
43
|
+
:include: Contributing.rdoc
|
44
|
+
|
45
|
+
:include: Licence.rdoc
|
data/Rakefile
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
5
|
+
require 'pathname'
|
6
|
+
|
7
|
+
Hoe.plugin :doofus
|
8
|
+
Hoe.plugin :email unless ENV['CI'] or ENV['TRAVIS']
|
9
|
+
Hoe.plugin :gemspec2
|
10
|
+
Hoe.plugin :git
|
11
|
+
Hoe.plugin :minitest
|
12
|
+
Hoe.plugin :rubygems
|
13
|
+
|
14
|
+
spec = Hoe.spec 'cartage-s3' do
|
15
|
+
developer('Austin Ziegler', 'aziegler@kineticcafe.com')
|
16
|
+
|
17
|
+
self.history_file = 'History.rdoc'
|
18
|
+
self.readme_file = 'README.rdoc'
|
19
|
+
self.extra_rdoc_files = FileList['*.rdoc'].to_a
|
20
|
+
|
21
|
+
license 'MIT'
|
22
|
+
|
23
|
+
self.extra_deps << ['cartage', '~> 1.0']
|
24
|
+
self.extra_deps << ['fog', '~> 1.27']
|
25
|
+
|
26
|
+
self.extra_dev_deps << ['rake', '~> 10.0']
|
27
|
+
self.extra_dev_deps << ['hoe-doofus', '~> 1.0']
|
28
|
+
self.extra_dev_deps << ['hoe-gemspec2', '~> 1.1']
|
29
|
+
self.extra_dev_deps << ['hoe-git', '~> 1.5']
|
30
|
+
self.extra_dev_deps << ['hoe-geminabox', '~> 0.3']
|
31
|
+
=begin
|
32
|
+
self.extra_dev_deps << ['minitest', '~> 5.4']
|
33
|
+
self.extra_dev_deps << ['minitest-autotest', '~> 1.0']
|
34
|
+
self.extra_dev_deps << ['minitest-bisect', '~> 1.2']
|
35
|
+
self.extra_dev_deps << ['minitest-focus', '~> 1.1']
|
36
|
+
self.extra_dev_deps << ['minitest-moar', '~> 0.0']
|
37
|
+
self.extra_dev_deps << ['minitest-pretty_diff', '~> 0.1']
|
38
|
+
self.extra_dev_deps << ['simplecov', '~> 0.7']
|
39
|
+
=end
|
40
|
+
end
|
41
|
+
|
42
|
+
=begin
|
43
|
+
namespace :test do
|
44
|
+
task :coverage do
|
45
|
+
prelude = <<-EOS
|
46
|
+
require 'simplecov'
|
47
|
+
SimpleCov.start('test_frameworks') { command_name 'Minitest' }
|
48
|
+
gem 'minitest'
|
49
|
+
EOS
|
50
|
+
spec.test_prelude = prelude.split($/).join('; ')
|
51
|
+
Rake::Task['test'].execute
|
52
|
+
end
|
53
|
+
end
|
54
|
+
=end
|
55
|
+
|
56
|
+
# vim: syntax=ruby
|
data/lib/cartage/s3.rb
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
begin
|
2
|
+
require 'psych'
|
3
|
+
rescue LoadError
|
4
|
+
end
|
5
|
+
require 'yaml'
|
6
|
+
require 'erb'
|
7
|
+
require 'cartage/plugin'
|
8
|
+
|
9
|
+
class Cartage
|
10
|
+
# Upload the target package to S3.
|
11
|
+
#
|
12
|
+
# == Configuration
|
13
|
+
# Cartage::S3 is configured in the +plugins.s3+ section of the Cartage
|
14
|
+
# configuration file, and supports the following keys:
|
15
|
+
#
|
16
|
+
# +path+:: The path name or bucket name where the targets will be uploaded.
|
17
|
+
# The <tt>--path</tt> option will override a config-provided path
|
18
|
+
# setting.
|
19
|
+
# +credentials+:: A dictionary which, if present, will be used to initialize
|
20
|
+
# a Fog::Storage object. If +credentials+ is set in a
|
21
|
+
# configuration file, the command-line parameters
|
22
|
+
# <tt>--key-id</tt>, <tt>--secret-key</tt>, and
|
23
|
+
# <tt>--region</tt> will be ignored.
|
24
|
+
#
|
25
|
+
# For AWS in us-west-2, this configuration would look like this:
|
26
|
+
#
|
27
|
+
# ---
|
28
|
+
# plugins:
|
29
|
+
# s3:
|
30
|
+
# path: PATHNAME
|
31
|
+
# credentials:
|
32
|
+
# provider: AWS
|
33
|
+
# aws_access_key_id: YOUR_AWS_ACCESS_KEY_ID
|
34
|
+
# aws_secret_access_key: YOUR_AWS_SECRET_ACCESS_KEY
|
35
|
+
# region: us-west-2
|
36
|
+
#
|
37
|
+
# For Rackspace CloudFiles London, it would be:
|
38
|
+
#
|
39
|
+
# ---
|
40
|
+
# plugins:
|
41
|
+
# s3:
|
42
|
+
# path: PATHNAME
|
43
|
+
# credentials:
|
44
|
+
# provider: Rackspace
|
45
|
+
# rackspace_username: RACKSPACE_USERNAME
|
46
|
+
# rackspace_api_key: RACKSPACE_API_KEY
|
47
|
+
# rackspace_auth_url: lon.auth.api.rackspacecloud.com
|
48
|
+
#
|
49
|
+
# For Google Cloud Storage, it would be:
|
50
|
+
#
|
51
|
+
# ---
|
52
|
+
# plugins:
|
53
|
+
# s3:
|
54
|
+
# path: PATHNAME
|
55
|
+
# credentials:
|
56
|
+
# provider: Google
|
57
|
+
# google_storage_access_key_id: YOUR_SECRET_ACCESS_KEY_ID
|
58
|
+
# google_storage_secret_access_key: YOUR_SECRET_ACCESS_KEY
|
59
|
+
#
|
60
|
+
# If Cartage#environment has been set, that value will be used to select
|
61
|
+
# partitioned configuration values.
|
62
|
+
#
|
63
|
+
# ---
|
64
|
+
# development:
|
65
|
+
# plugins:
|
66
|
+
# s3:
|
67
|
+
# path: PATHNAME
|
68
|
+
# credentials:
|
69
|
+
# provider: AWS
|
70
|
+
# aws_access_key_id: YOUR_AWS_ACCESS_KEY_ID
|
71
|
+
# aws_secret_access_key: YOUR_AWS_SECRET_ACCESS_KEY
|
72
|
+
# region: us-west-2
|
73
|
+
#
|
74
|
+
# === Cloud Storage Security Considerations
|
75
|
+
#
|
76
|
+
# cartage-s3 does not create the target path and expects to place both
|
77
|
+
# files in the same directory. The only thing that is required from the
|
78
|
+
# access user is that it may put a file directly into the bucket/path. The
|
79
|
+
# files in question are timestamped UTC, so there is little chance for
|
80
|
+
# collision.
|
81
|
+
class S3 < Cartage::Plugin
|
82
|
+
VERSION = '1.0' #:nodoc:
|
83
|
+
|
84
|
+
# The AWS S3 path (bucket) to use for uploading the cartage package.
|
85
|
+
attr_accessor :path
|
86
|
+
# The AWS S3 Access Key ID. If a +credentials+ section is not present in
|
87
|
+
# the configuration file and this is not provided, this will be pulled from
|
88
|
+
# <tt>$AWS_ACCESS_KEY_ID</tt>.
|
89
|
+
attr_accessor :aws_access_key_id
|
90
|
+
# The AWS S3 Secret Access Key. If a +credentials+ section is not present
|
91
|
+
# in the configuration file and this is not provided, this will be pulled
|
92
|
+
# from <tt>$AWS_SECRET_ACCESS_KEY</tt>.
|
93
|
+
attr_accessor :aws_secret_access_key
|
94
|
+
# The AWS S3 Region name.
|
95
|
+
attr_accessor :region
|
96
|
+
|
97
|
+
# Perform the upload.
|
98
|
+
def upload
|
99
|
+
require 'fog'
|
100
|
+
|
101
|
+
connection = Fog::Storage.new(@access)
|
102
|
+
|
103
|
+
@cartage.display "Uploading #{@cartage.final_release_hashref.basename}..."
|
104
|
+
connection.put_object(@target, @cartage.final_release_hashref.basename.to_s,
|
105
|
+
@cartage.final_release_hashref.read)
|
106
|
+
@cartage.display "Uploading #{@cartage.final_tarball.basename}..."
|
107
|
+
connection.put_object(@target, @cartage.final_tarball.basename.to_s,
|
108
|
+
@cartage.final_tarball.read)
|
109
|
+
end
|
110
|
+
|
111
|
+
private
|
112
|
+
|
113
|
+
def resolve_config!(s3_config)
|
114
|
+
@target = s3_config && s3_config.path
|
115
|
+
|
116
|
+
@access = if s3_config && s3_config.credentials
|
117
|
+
s3_config.credentials.to_h
|
118
|
+
else
|
119
|
+
{
|
120
|
+
provider: 'AWS',
|
121
|
+
aws_access_key_id: value_for!(:aws_access_key_id),
|
122
|
+
aws_secret_access_key: value_for!(:aws_secret_access_key),
|
123
|
+
region: region
|
124
|
+
}
|
125
|
+
end
|
126
|
+
|
127
|
+
provider = @access[:provider]
|
128
|
+
raise ArgumentError, <<-exception if provider.nil? or provider.empty?
|
129
|
+
Cannot upload: no provider set.
|
130
|
+
exception
|
131
|
+
|
132
|
+
@target = path || @target
|
133
|
+
raise ArgumentError, <<-exception if @target.nil? or @target.empty?
|
134
|
+
Cannot upload to #{provider}: path is not set.
|
135
|
+
exception
|
136
|
+
end
|
137
|
+
|
138
|
+
def value_for!(name)
|
139
|
+
(send(name) || ENV[name.to_s.upcase]).tap do |value|
|
140
|
+
raise ArgumentError, <<-exception if value.nil? or value.empty?
|
141
|
+
Cannot upload: AWS S3 requires #{name.to_s.upcase} be provided.
|
142
|
+
exception
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def self.commands
|
147
|
+
require_relative 's3/command'
|
148
|
+
[ Cartage::S3::Command ]
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'cartage/command'
|
2
|
+
|
3
|
+
class Cartage::S3::Command < Cartage::Command #:nodoc:
|
4
|
+
def initialize(cartage)
|
5
|
+
super(cartage, 's3')
|
6
|
+
takes_commands(false)
|
7
|
+
short_desc('Build a release package and upload to cloud storage.')
|
8
|
+
|
9
|
+
@cartage = cartage
|
10
|
+
@s3 = cartage.s3
|
11
|
+
|
12
|
+
Cartage.common_build_options(options, cartage)
|
13
|
+
|
14
|
+
options do |opts|
|
15
|
+
opts.separator "Cartage S3 Options"
|
16
|
+
opts.on(
|
17
|
+
'-P', '--path PATH',
|
18
|
+
'The bucket or path where the release package will be uploaded to.'
|
19
|
+
) { |b| @s3.path = b }
|
20
|
+
opts.on(
|
21
|
+
'-K', '--key-id AWS_ACCESS_KEY_ID',
|
22
|
+
'The AWS S3 access key ID.'
|
23
|
+
) { |k| @s3.aws_access_key_id = k }
|
24
|
+
opts.on(
|
25
|
+
'-S', '--secret-key AWS_SECRET_ACCESS_KEY',
|
26
|
+
'The AWS S3 secret access key.'
|
27
|
+
) { |s| @s3.aws_secret_access_key = s }
|
28
|
+
opts.on(
|
29
|
+
'-R', '--region REGION',
|
30
|
+
'The AWS S3 region for uploading.'
|
31
|
+
) { |r| @s3.region = r }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def perform(*)
|
36
|
+
@cartage.pack
|
37
|
+
@s3.upload
|
38
|
+
end
|
39
|
+
|
40
|
+
def with_plugins
|
41
|
+
%w(s3)
|
42
|
+
end
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,211 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cartage-s3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1.0'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Austin Ziegler
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cartage
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: fog
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.27'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.27'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rdoc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: hoe-doofus
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: hoe-gemspec2
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.1'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: hoe-git
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.5'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.5'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: hoe-geminabox
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.3'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.3'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: hoe
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.13'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3.13'
|
153
|
+
description: |-
|
154
|
+
cartage-s3 is a plug-in for {cartage}[https://github.com/KineticCafe/cartage]
|
155
|
+
to upload the built package to Amazon's S3 or a service with a similar
|
156
|
+
interface. Cartage provides a repeatable means to create a package for a Rails
|
157
|
+
application that can be used in deployment with a configuration tool like
|
158
|
+
Ansible, Chef, Puppet, or Salt. The package is created with its dependencies
|
159
|
+
bundled in `vendor/bundle`, so it can be deployed in environments with strict
|
160
|
+
access control rules and without requiring development tool access.
|
161
|
+
email:
|
162
|
+
- aziegler@kineticcafe.com
|
163
|
+
executables: []
|
164
|
+
extensions: []
|
165
|
+
extra_rdoc_files:
|
166
|
+
- Contributing.rdoc
|
167
|
+
- History.rdoc
|
168
|
+
- Licence.rdoc
|
169
|
+
- Manifest.txt
|
170
|
+
- README.rdoc
|
171
|
+
files:
|
172
|
+
- ".autotest"
|
173
|
+
- ".gemtest"
|
174
|
+
- ".minitest.rb"
|
175
|
+
- Contributing.rdoc
|
176
|
+
- Gemfile
|
177
|
+
- History.rdoc
|
178
|
+
- Licence.rdoc
|
179
|
+
- Manifest.txt
|
180
|
+
- README.rdoc
|
181
|
+
- Rakefile
|
182
|
+
- lib/cartage/s3.rb
|
183
|
+
- lib/cartage/s3/command.rb
|
184
|
+
homepage: https://github.com/KineticCafe/cartage-s3/
|
185
|
+
licenses:
|
186
|
+
- MIT
|
187
|
+
metadata: {}
|
188
|
+
post_install_message:
|
189
|
+
rdoc_options:
|
190
|
+
- "--main"
|
191
|
+
- README.rdoc
|
192
|
+
require_paths:
|
193
|
+
- lib
|
194
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
195
|
+
requirements:
|
196
|
+
- - ">="
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
199
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - ">="
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '0'
|
204
|
+
requirements: []
|
205
|
+
rubyforge_project:
|
206
|
+
rubygems_version: 2.2.2
|
207
|
+
signing_key:
|
208
|
+
specification_version: 4
|
209
|
+
summary: cartage-s3 is a plug-in for {cartage}[https://github.com/KineticCafe/cartage]
|
210
|
+
to upload the built package to Amazon's S3 or a service with a similar interface
|
211
|
+
test_files: []
|