capistrano-net_storage-s3 0.2.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/.gitignore +15 -0
- data/.rspec +2 -0
- data/.travis.yml +12 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +85 -0
- data/Rakefile +6 -0
- data/capistrano-net_storage-s3.gemspec +26 -0
- data/lib/capistrano-net_storage-s3.rb +0 -0
- data/lib/capistrano/net_storage/s3.rb +8 -0
- data/lib/capistrano/net_storage/s3/base.rb +18 -0
- data/lib/capistrano/net_storage/s3/broker/aws_cli.rb +63 -0
- data/lib/capistrano/net_storage/s3/broker/base.rb +38 -0
- data/lib/capistrano/net_storage/s3/config.rb +121 -0
- data/lib/capistrano/net_storage/s3/error.rb +6 -0
- data/lib/capistrano/net_storage/s3/transport.rb +17 -0
- data/lib/capistrano/net_storage/s3/version.rb +5 -0
- metadata +132 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0333b3c27bc12d2efe91107c6e97572bfa2f60e8
|
4
|
+
data.tar.gz: 2c58481cb021d63e7dfc41378ba59ede934717f3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e1587ffac5828fd71d58c08e798548dbeec8aad0cfd185e6154cd97733341510691c7157a713cc368537ac606924fb920773ee33efc34b867c38d14e78472cf1
|
7
|
+
data.tar.gz: 3b71b8431885200a19913d4271738c6ffb502a4f412f5052a3e785d9b6f648d032acb1cd3c9d1da47d52043bf8c8e51b9b9ca488a8290ffaa0b43884be91ab93
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
rvm:
|
4
|
+
- 2.0.0
|
5
|
+
- 2.1.8
|
6
|
+
- 2.2.0
|
7
|
+
before_install: gem install bundler -v 1.14.6
|
8
|
+
install: bundle _1.14.6_ install
|
9
|
+
script: bundle _1.14.6_ exec rake spec
|
10
|
+
notifications:
|
11
|
+
slack:
|
12
|
+
secure: WFEsKPeewkV6n/LmpsvLbu17nT5AWxVr1yglUjhCEe8OGIukTOpTbdsnhv9ticj0vXNdKZZRQEe4B0BhC8Fn+iPbFLyi1Z4is7dmABVU+b1qSOKIQlCCoPqa8RzYuVPYzMcVs9E1ldVdrQfLXKYoVeFAFeFSzcrf4mmTDrJbHhOXFIp1GYfYnhCIf01R72pcc2sHfWrzL3croIAqVYFiYJlimjQgduqQGVnyQjCeFmERCnnJU4t4VUlDU1gxTi3VYLfUtyUFyo5Kp+msRMbjr7LVuXyv/JplnNX3skG7VYN2nyhL6VuuOMAfCDpDCeCpH5mJcB1xLagide+GgDVYPJMJG419Ao7vCNI+1cl4VojT8aZKOs6vR7AMBSCP6gittrDIWOCuD61fc5HLFBSzL5dD5u2b2AxAUuODohNKigKwY59tE5CePuMycS/wVaFBtZjAKwDJDKU95m8JCtqJGzHQ0mEMKrXKICal9O7GWwEuEV+EnU+yzk+ZqWM6AHpGJ48DSm3pMnlnoPy3SBs4W8tFH+IS18cKBJ795Nj2vdwZFEYUEo0UwZrch/STY0/rPHayts9/7vgzZOIur168kxIw5bDNisPqzMTeNiYECnNLYWBSa0Xqn8mKPu52GVJYW6L0Wa8LRxln6BcNv2DkS+JFjyUC04T5wAdD4ADnQd4=
|
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2017 DeNA Co., Ltd., IKEDA Kiyoshi
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
# Capistrano::NetStorage::S3
|
2
|
+
|
3
|
+
**Capistrano::NetStorage::S3** is a transport plugin of
|
4
|
+
[Capistrano::NetStorage](https://github.com/DeNADev/capistrano-net_storage) to deploy application
|
5
|
+
via [Amazon S3](https://aws.amazon.com/s3/).
|
6
|
+
And Capistrano::NetStorage is a plugin of [Capistrano](http://capistranorb.com/).
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
gem 'capistrano-net_storage-s3'
|
14
|
+
```
|
15
|
+
|
16
|
+
And then execute:
|
17
|
+
|
18
|
+
$ bundle
|
19
|
+
|
20
|
+
Or install it yourself as:
|
21
|
+
|
22
|
+
$ gem install capistrano-net_storage-s3
|
23
|
+
|
24
|
+
## Configuration
|
25
|
+
|
26
|
+
Set Capistrano variables by `set name, value`.
|
27
|
+
|
28
|
+
Name | Default | Description
|
29
|
+
------|---------|------------
|
30
|
+
`:scm` | `nil` | Set `:net_storage`
|
31
|
+
`:net_storage_transport` | `nil` | Set `Capistrano::NetStorage::S3::Transport`
|
32
|
+
`:net_storage_s3_broker` | `:aws_cli` | Type of transportation broker
|
33
|
+
`:net_storage_s3_aws_access_key_id` | `ENV['AWS_ACCESS_KEY_ID']` | AWS Access Key ID
|
34
|
+
`:net_storage_s3_aws_secret_access_key` | `ENV['AWS_SECRET_ACCESS_KEY']` | AWS Secret Access Key
|
35
|
+
`:net_storage_s3_aws_session_token` | `ENV['AWS_SESSION_TOKEN']` | AWS Session Token
|
36
|
+
`:net_storage_s3_aws_region` | `ENV['AWS_DEFAULT_REGION']` | AWS Region
|
37
|
+
`:net_storage_s3_aws_profile` | `ENV['AWS_DEFAULT_PROFILE']` | AWS Profile
|
38
|
+
`:net_storage_s3_aws_config_file` | `ENV['AWS_CONFIG_FILE']` | AWS Config File
|
39
|
+
`:net_storage_s3_bucket` | `nil` | S3 bucket name
|
40
|
+
`:net_storage_s3_archives_directory` | `nil` | Directory for application archives in S3 bucket
|
41
|
+
`:net_storage_s3_max_retry` | `3` | Max retry times for S3 operations
|
42
|
+
|
43
|
+
See also
|
44
|
+
[the configuration section of Capistrano::NetStorage](https://github.com/DeNADev/capistrano-net_storage#configuration).
|
45
|
+
|
46
|
+
## Usage
|
47
|
+
|
48
|
+
Edit Capfile:
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
# Load DSL and Setup Up Stages
|
52
|
+
require 'capistrano/setup'
|
53
|
+
|
54
|
+
# Includes default deployment tasks
|
55
|
+
require 'capistrano/deploy'
|
56
|
+
|
57
|
+
# Includes tasks from other gems included in your Gemfile
|
58
|
+
require 'capistrano/net_storage'
|
59
|
+
# Load transport plugin for Capistrano::NetStorage
|
60
|
+
require 'capistrano/net_storage/s3'
|
61
|
+
```
|
62
|
+
|
63
|
+
Edit your `config/deploy.rb`:
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
set :scm, :net_storage
|
67
|
+
set :net_storage_transport, Capistrano::NetStorage::S3::Transport
|
68
|
+
# set :net_storage_config_files, [your_config_files]
|
69
|
+
# set :net_storage_with_bundle, true
|
70
|
+
# set :net_storage_archiver, Capistrano::NetStorage::Archiver::TarGzip
|
71
|
+
set :net_storage_s3_bucket, 'example-bucket'
|
72
|
+
# set :net_storage_s3_archives_directory, your_favorite_directory_path
|
73
|
+
```
|
74
|
+
|
75
|
+
## Example
|
76
|
+
|
77
|
+
You can see typical usage of this library by
|
78
|
+
[capistrano-net_storage_demo](https://github.com/DeNADev/capistrano-net_storage_demo/tree/net_storage-s3).
|
79
|
+
|
80
|
+
## License
|
81
|
+
|
82
|
+
Available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
83
|
+
|
84
|
+
Copyright (c) 2017 DeNA Co., Ltd., IKEDA Kiyoshi
|
85
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'capistrano/net_storage/s3/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'capistrano-net_storage-s3'
|
8
|
+
spec.version = Capistrano::NetStorage::S3::VERSION
|
9
|
+
spec.authors = ['progrhyme']
|
10
|
+
|
11
|
+
spec.summary = 'Plugin of capistrano-net_storage for Amazon S3'
|
12
|
+
spec.description = 'A transport plugin of capistrano-net_storage to deploy application via Amazon S3.'
|
13
|
+
spec.homepage = 'https://github.com/DeNADev/capistrano-net_storage-s3'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.require_paths = ['lib']
|
18
|
+
spec.required_ruby_version = '>= 2.0'
|
19
|
+
|
20
|
+
spec.add_runtime_dependency 'capistrano-net_storage'
|
21
|
+
spec.add_runtime_dependency 'retryable'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler'
|
24
|
+
spec.add_development_dependency 'rake'
|
25
|
+
spec.add_development_dependency 'rspec'
|
26
|
+
end
|
File without changes
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'capistrano/net_storage/s3/base'
|
2
|
+
require 'capistrano/net_storage/s3/error'
|
3
|
+
require 'capistrano/net_storage/s3/config'
|
4
|
+
require 'capistrano/net_storage/s3/broker/aws_cli'
|
5
|
+
require 'capistrano/net_storage/s3/transport'
|
6
|
+
require 'capistrano/net_storage/s3/version'
|
7
|
+
|
8
|
+
Capistrano::NetStorage::S3.setup!(config: Capistrano::NetStorage::S3::Config.new)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
module Capistrano
|
4
|
+
module NetStorage
|
5
|
+
class S3
|
6
|
+
class << self
|
7
|
+
attr_reader :config
|
8
|
+
|
9
|
+
extend Forwardable
|
10
|
+
def_delegator :config, :broker
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.setup!(params)
|
14
|
+
@config = params[:config]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'retryable'
|
2
|
+
|
3
|
+
require 'capistrano/net_storage/s3/base'
|
4
|
+
require 'capistrano/net_storage/s3/broker/base'
|
5
|
+
|
6
|
+
class Capistrano::NetStorage::S3::Broker::AwsCLI < Capistrano::NetStorage::S3::Broker::Base
|
7
|
+
def check
|
8
|
+
execute_aws_s3('ls', config.bucket_url)
|
9
|
+
end
|
10
|
+
|
11
|
+
def find_uploaded
|
12
|
+
if capture_aws_s3('ls', config.archive_url)
|
13
|
+
set :net_storage_uploaded_archive, true
|
14
|
+
end
|
15
|
+
rescue SSHKit::Runner::ExecuteError
|
16
|
+
c = config
|
17
|
+
on :local do
|
18
|
+
info "Archive is not found on #{c.archive_url}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def upload
|
23
|
+
c = config
|
24
|
+
ns = net_storage
|
25
|
+
Retryable.retryable(tries: c.max_retry, sleep: 0.1) do
|
26
|
+
execute_aws_s3('cp', ns.local_archive_path, c.archive_url)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def download
|
31
|
+
c = config
|
32
|
+
ns = net_storage
|
33
|
+
on ns.servers, in: :groups, limit: ns.max_parallels do
|
34
|
+
Retryable.retryable(tries: c.max_retry, sleep: 0.1) do
|
35
|
+
within releases_path do
|
36
|
+
with(c.aws_environments) do
|
37
|
+
execute :aws, 's3', 'cp', c.archive_url, ns.archive_path
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def execute_aws_s3(cmd, *args)
|
47
|
+
c = config
|
48
|
+
on :local do
|
49
|
+
with(c.aws_environments) do
|
50
|
+
execute :aws, 's3', cmd, *args
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def capture_aws_s3(cmd, *args)
|
56
|
+
c = config
|
57
|
+
on :local do
|
58
|
+
with(c.aws_environments) do
|
59
|
+
capture :aws, 's3', cmd, *args
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'capistrano/net_storage/s3/base'
|
2
|
+
|
3
|
+
class Capistrano::NetStorage::S3
|
4
|
+
module Broker
|
5
|
+
# @abstract
|
6
|
+
class Base
|
7
|
+
# @abstract
|
8
|
+
def check
|
9
|
+
raise NotImplementedError
|
10
|
+
end
|
11
|
+
|
12
|
+
# @abstract
|
13
|
+
def find_uploaded
|
14
|
+
raise NotImplementedError
|
15
|
+
end
|
16
|
+
|
17
|
+
# @abstract
|
18
|
+
def upload
|
19
|
+
raise NotImplementedError
|
20
|
+
end
|
21
|
+
|
22
|
+
# @abstract
|
23
|
+
def download
|
24
|
+
raise NotImplementedError
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def config
|
30
|
+
Capistrano::NetStorage::S3.config
|
31
|
+
end
|
32
|
+
|
33
|
+
def net_storage
|
34
|
+
Capistrano::NetStorage.config
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'uri'
|
2
|
+
|
3
|
+
require 'capistrano/net_storage/s3/base'
|
4
|
+
require 'capistrano/net_storage/s3/error'
|
5
|
+
require 'capistrano/net_storage/s3/broker/aws_cli'
|
6
|
+
|
7
|
+
class Capistrano::NetStorage::S3
|
8
|
+
class Config
|
9
|
+
# Broker object for transport operations
|
10
|
+
# @return [Capistrano::NetStorage::S3::Broker::Base]
|
11
|
+
def broker
|
12
|
+
@broker ||= begin
|
13
|
+
case fetch(:net_storage_s3_broker, :aws_cli)
|
14
|
+
when :aws_cli
|
15
|
+
Broker::AwsCLI.new
|
16
|
+
else
|
17
|
+
raise Capistrano::NetStorage::S3::Error, "No broker defined! #{fetch(:net_storage_s3_broker)}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# AWS configurations
|
23
|
+
|
24
|
+
# @return [String] AWS Access Key ID
|
25
|
+
def aws_access_key_id
|
26
|
+
@aws_access_key_id ||= fetch(:net_storage_s3_aws_access_key_id, ENV['AWS_ACCESS_KEY_ID'])
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [String] AWS Secret Access Key
|
30
|
+
def aws_secret_access_key
|
31
|
+
@aws_secret_access_key ||= fetch(:net_storage_s3_aws_secret_access_key)
|
32
|
+
@aws_secret_access_key ||= ENV['AWS_SECRET_ACCESS_KEY']
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [String] AWS Session Token
|
36
|
+
def aws_session_token
|
37
|
+
@aws_session_token ||= fetch(:net_storage_s3_aws_session_token, ENV['AWS_SESSION_TOKEN'])
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String] AWS Region
|
41
|
+
def aws_region
|
42
|
+
@aws_region ||= fetch(:net_storage_s3_aws_region, ENV['AWS_DEFAULT_REGION'])
|
43
|
+
end
|
44
|
+
|
45
|
+
# @return [String] AWS Profile
|
46
|
+
def aws_profile
|
47
|
+
@aws_profile ||= fetch(:net_storage_s3_aws_profile, ENV['AWS_DEFAULT_PROFILE'])
|
48
|
+
end
|
49
|
+
|
50
|
+
# AWS Config File
|
51
|
+
def aws_config_file
|
52
|
+
@aws_config_file ||= fetch(:net_storage_s3_aws_config_file, ENV['AWS_CONFIG_FILE'])
|
53
|
+
end
|
54
|
+
|
55
|
+
# @return [Hash] AWS environment variables
|
56
|
+
def aws_environments
|
57
|
+
@aws_environments ||= begin
|
58
|
+
environments = {}
|
59
|
+
environments[:aws_config_file] = aws_config_file if aws_config_file
|
60
|
+
environments[:aws_default_profile] = aws_profile if aws_profile
|
61
|
+
environments[:aws_default_region] = aws_region if aws_region
|
62
|
+
environments[:aws_access_key_id] = aws_access_key_id if aws_access_key_id
|
63
|
+
environments[:aws_secret_access_key] = aws_secret_access_key if aws_secret_access_key
|
64
|
+
environments[:aws_session_token] = aws_session_token if aws_session_token
|
65
|
+
environments
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# S3 bucket URL via which one transports application archives
|
70
|
+
# @return [URI::Generic]
|
71
|
+
def bucket_url
|
72
|
+
@bucket ||= begin
|
73
|
+
unless bucket = fetch(:net_storage_s3_bucket)
|
74
|
+
raise Capistrano::NetStorage::S3::Error, ':net_storage_s3_bucket is not configured!'
|
75
|
+
end
|
76
|
+
URI.parse("s3://#{bucket}")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# S3 URL which contains application archives
|
81
|
+
# @return [URI::Generic]
|
82
|
+
def archives_url
|
83
|
+
@archives_url ||= begin
|
84
|
+
if archives_directory
|
85
|
+
bucket_url + archives_directory
|
86
|
+
else
|
87
|
+
bucket_url
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# S3 URL of the application archive for current deployment
|
93
|
+
# @return [URI::Generic]
|
94
|
+
def archive_url
|
95
|
+
@archive_url ||= begin
|
96
|
+
unless revision = fetch(:current_revision)
|
97
|
+
raise Capistrano::NetStorage::Error, ':current_revision is not set!'
|
98
|
+
end
|
99
|
+
archive_file = "#{revision}.#{Capistrano::NetStorage.config.archive_suffix}"
|
100
|
+
archives_url + archive_file
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# Max retrial number for S3 operations
|
105
|
+
# @return [Fixnum]
|
106
|
+
def max_retry
|
107
|
+
@max_retry ||= fetch(:net_storage_s3_max_retry, 3)
|
108
|
+
end
|
109
|
+
|
110
|
+
private
|
111
|
+
|
112
|
+
# @return [String]
|
113
|
+
def archives_directory
|
114
|
+
# append '/' in case missing
|
115
|
+
@archives_directory ||= begin
|
116
|
+
dir = fetch(:net_storage_s3_archives_directory)
|
117
|
+
dir.sub(%r{[^/]\Z}, '\&/') if dir
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
require 'capistrano/net_storage/transport/base'
|
4
|
+
|
5
|
+
require 'capistrano/net_storage/s3/base'
|
6
|
+
require 'capistrano/net_storage/s3/config'
|
7
|
+
|
8
|
+
class Capistrano::NetStorage::S3::Transport < Capistrano::NetStorage::Transport::Base
|
9
|
+
extend Forwardable
|
10
|
+
def_delegators :broker, :check, :find_uploaded, :upload, :download
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def broker
|
15
|
+
Capistrano::NetStorage::S3.broker
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capistrano-net_storage-s3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- progrhyme
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: capistrano-net_storage
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: retryable
|
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
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: A transport plugin of capistrano-net_storage to deploy application via
|
84
|
+
Amazon S3.
|
85
|
+
email:
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ".gitignore"
|
91
|
+
- ".rspec"
|
92
|
+
- ".travis.yml"
|
93
|
+
- CHANGELOG.md
|
94
|
+
- Gemfile
|
95
|
+
- LICENSE.txt
|
96
|
+
- README.md
|
97
|
+
- Rakefile
|
98
|
+
- capistrano-net_storage-s3.gemspec
|
99
|
+
- lib/capistrano-net_storage-s3.rb
|
100
|
+
- lib/capistrano/net_storage/s3.rb
|
101
|
+
- lib/capistrano/net_storage/s3/base.rb
|
102
|
+
- lib/capistrano/net_storage/s3/broker/aws_cli.rb
|
103
|
+
- lib/capistrano/net_storage/s3/broker/base.rb
|
104
|
+
- lib/capistrano/net_storage/s3/config.rb
|
105
|
+
- lib/capistrano/net_storage/s3/error.rb
|
106
|
+
- lib/capistrano/net_storage/s3/transport.rb
|
107
|
+
- lib/capistrano/net_storage/s3/version.rb
|
108
|
+
homepage: https://github.com/DeNADev/capistrano-net_storage-s3
|
109
|
+
licenses:
|
110
|
+
- MIT
|
111
|
+
metadata: {}
|
112
|
+
post_install_message:
|
113
|
+
rdoc_options: []
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '2.0'
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
requirements: []
|
127
|
+
rubyforge_project:
|
128
|
+
rubygems_version: 2.6.11
|
129
|
+
signing_key:
|
130
|
+
specification_version: 4
|
131
|
+
summary: Plugin of capistrano-net_storage for Amazon S3
|
132
|
+
test_files: []
|