delivery_center 0.1.2
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 +10 -0
- data/.travis.yml +19 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +10 -0
- data/bin/console +11 -0
- data/bin/setup +8 -0
- data/delivery_center.gemspec +38 -0
- data/exe/delivery_center +5 -0
- data/lib/delivery_center/app.rb +65 -0
- data/lib/delivery_center/application_record.rb +3 -0
- data/lib/delivery_center/cli/database.rb +41 -0
- data/lib/delivery_center/cli.rb +15 -0
- data/lib/delivery_center/errors.rb +13 -0
- data/lib/delivery_center/models/api_key.rb +3 -0
- data/lib/delivery_center/models/application.rb +46 -0
- data/lib/delivery_center/models/deploy.rb +12 -0
- data/lib/delivery_center/models/revision.rb +3 -0
- data/lib/delivery_center/models.rb +7 -0
- data/lib/delivery_center/schema/Schemafile +3 -0
- data/lib/delivery_center/schema/api_keys.rb +6 -0
- data/lib/delivery_center/schema/applications.rb +6 -0
- data/lib/delivery_center/schema/deploys.rb +6 -0
- data/lib/delivery_center/schema/revisions.rb +7 -0
- data/lib/delivery_center/version.rb +3 -0
- data/lib/delivery_center.rb +44 -0
- metadata +268 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 45152e885540e4eff7d90f7401c0443e9375fe82
|
4
|
+
data.tar.gz: 5797ce2d4084413599c93c0fdf098f8e6acf844a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 78095d1fd1b554ebd4c9907ebce01b938fbc303a67e5ff0605caa8d94e89620292716b02a6cc5929d40b671c34e01cb299b5b13de6e32e58b1ef22ffdb6b25b0
|
7
|
+
data.tar.gz: 4d581ac2e26e8919c32c1eaa600ecaf2135ca6a5a8954a11251e4480952989dee1c53158ae73268fa25e33f72cad41d62b306a6d149853a2cf349de102542255
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
rvm:
|
4
|
+
- 2.3.3
|
5
|
+
env:
|
6
|
+
- DELIVERY_CENTER_DATABASE_USERNAME=travis DELIVERY_CENTER_DATABASE_DATABASE=myapp_test
|
7
|
+
services:
|
8
|
+
- mysql
|
9
|
+
before_script:
|
10
|
+
- bundle exec ./exe/delivery_center db create
|
11
|
+
- bundle exec ./exe/delivery_center db migrate
|
12
|
+
script:
|
13
|
+
- bundle exec rspec
|
14
|
+
deploy:
|
15
|
+
api_key:
|
16
|
+
secure: APbt3PruFSNF8l6SsRsdA6spgg8/zlOPcWT5AlMTzYvArTP52qVwBg6l53VPS0o4Blbx534ZvSCg5r/PbjjaKZY1DJGHk6EUCIunzM09wDbTLj4fh37nQGozZYB7EONs8eyedVqN5VxF2fHozR/nByTIZ9Yh4DGshyc0rKK8ObwH1JEaTtzT/Usxen3xMWC9Xee6SyBalSicbZDn8LjxnUcqfzLuOJ8rVJSFClPtwPSM8nFhkI4Qp78GwWVtOlZMoF4hzKSt3MkNy3tx7O5CKnW+o0uBrOW2k2G3Gkz8buw2ehd80OBqUKrPLs9a9bzB1G0IDpjTFLUq3HrJLFwT3oxst0pgGjDkPOlv/KngeUzJNOBvwQN8F4wLsmQdhjlMGYRxvJShtnOoGrkLDYrRZzrt8RaAFtRUNv7qFhK+C/2PoQbc4+w/QY4+ETWwoHuxgHxEDKwO4yQsHxHzm8bFkYpwufTSKgSWJdFelEI+Dq9MWD6TKnpFiwbsTrxYZq0v3B1wV3qpU8Vbxw5n/ABaFkhToAnb2XEUfvafxvg4/RycMpH5fPKA7vu4yP9ZEBoub5qnOev3ENkU7k6qcwyMAgNjy+A0f8zV53TlVOPXnEnQw+2i3Qco5f3fPBptTIEOm4Hn5YkaJ5ryS7nPQ4dI4O4EcavLnOOq8ffjOWQFBUY=
|
17
|
+
provider: rubygems
|
18
|
+
on:
|
19
|
+
tags: true
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# DeliveryCenter
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/delivery_center`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'delivery_center'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install delivery_center
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/delivery_center.
|
36
|
+
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "delivery_center"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
require "pry"
|
11
|
+
Pry.start
|
data/bin/setup
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'delivery_center/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "delivery_center"
|
8
|
+
spec.version = DeliveryCenter::VERSION
|
9
|
+
spec.authors = ["Takatoshi Maeda", 'tokubai']
|
10
|
+
spec.email = ["me@tmd.tw", "developers@tokubai.co.jp"]
|
11
|
+
|
12
|
+
spec.summary = %q{deploy management tool}
|
13
|
+
spec.description = %q{deploy management tool}
|
14
|
+
spec.homepage = "https://github.com/tokubai/delivery_center"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_dependency "thor"
|
24
|
+
spec.add_dependency "sinatra"
|
25
|
+
spec.add_dependency "sinatra-contrib"
|
26
|
+
spec.add_dependency "activerecord"
|
27
|
+
spec.add_dependency "mysql2"
|
28
|
+
spec.add_dependency "ridgepole"
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.13"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_development_dependency "rspec", "~> 3.6.0"
|
33
|
+
spec.add_development_dependency "pry"
|
34
|
+
spec.add_development_dependency "rack-test"
|
35
|
+
spec.add_development_dependency "rspec-json_matcher"
|
36
|
+
spec.add_development_dependency "factory_girl"
|
37
|
+
spec.add_development_dependency "database_rewinder"
|
38
|
+
end
|
data/exe/delivery_center
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
require 'sinatra/reloader'
|
3
|
+
require 'sinatra/json'
|
4
|
+
|
5
|
+
class DeliveryCenter::App < Sinatra::Base
|
6
|
+
register Sinatra::Reloader if ENV['RACK_ENV'] == 'development'
|
7
|
+
|
8
|
+
not_found do
|
9
|
+
'not found'
|
10
|
+
end
|
11
|
+
|
12
|
+
get '/applications.json' do
|
13
|
+
applications = DeliveryCenter::Application.all
|
14
|
+
applications = applications.where("name LIKE '%#{params[:name]}%'") unless params[:name].nil?
|
15
|
+
json applications
|
16
|
+
end
|
17
|
+
|
18
|
+
post '/applications.json' do
|
19
|
+
json DeliveryCenter::Application.find_or_create_by(name: params[:name])
|
20
|
+
end
|
21
|
+
|
22
|
+
get '/:name.json' do
|
23
|
+
json find_application
|
24
|
+
end
|
25
|
+
|
26
|
+
post '/:name/deploy.json' do
|
27
|
+
begin
|
28
|
+
json find_application.deploy!
|
29
|
+
rescue DeliveryCenter::AlreadyDeployedError => e
|
30
|
+
json({ error_code: e.code, message: 'already deployment latest revision' })
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
post '/:name/rollback.json' do
|
35
|
+
begin
|
36
|
+
json find_application.rollback!
|
37
|
+
rescue DeliveryCenter::PreviousDeployNotExistError => e
|
38
|
+
json({ error_code: e.code, message: 'not found previous revision' })
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
get '/:name/revisions.json' do
|
43
|
+
json find_application.revisions.order(id: :desc)
|
44
|
+
end
|
45
|
+
|
46
|
+
post '/:name/revisions.json' do
|
47
|
+
json find_application.revisions.find_or_create_by!(value: params[:revision])
|
48
|
+
end
|
49
|
+
|
50
|
+
get '/:name/revisions/current' do
|
51
|
+
find_application.current_revision.value
|
52
|
+
end
|
53
|
+
|
54
|
+
get '/:name/revisions/current.json' do
|
55
|
+
json find_application.current_revision
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def find_application
|
61
|
+
application = DeliveryCenter::Application.find_by(name: params[:name])
|
62
|
+
raise Sinatra::NotFound if application.nil?
|
63
|
+
application
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'ridgepole'
|
2
|
+
|
3
|
+
class DeliveryCenter::Cli::Database < Thor
|
4
|
+
namespace 'db'
|
5
|
+
|
6
|
+
desc 'migrate', 'migrate delivery center database schema'
|
7
|
+
option 'apply', desc: 'apply', default: false, aliases: 'a', type: :boolean
|
8
|
+
def migrate
|
9
|
+
ridgepole.diff(schemafile.read, path: schemafile.to_s).migrate
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'create', 'create delivery center database'
|
13
|
+
def create
|
14
|
+
ActiveRecord::Base.clear_all_connections!
|
15
|
+
ActiveRecord::Base.establish_connection(DeliveryCenter.database_config(excludes: [:database]))
|
16
|
+
ActiveRecord::Base.connection.create_database(DeliveryCenter.database_config[:database])
|
17
|
+
DeliveryCenter.logger.info("create #{DeliveryCenter.database_config[:database]} database.")
|
18
|
+
end
|
19
|
+
|
20
|
+
desc 'drop', 'drop delivery center database'
|
21
|
+
def drop
|
22
|
+
ActiveRecord::Base.clear_all_connections!
|
23
|
+
ActiveRecord::Base.establish_connection(DeliveryCenter.database_config(excludes: [:database]))
|
24
|
+
ActiveRecord::Base.connection.drop_database(DeliveryCenter.database_config[:database])
|
25
|
+
DeliveryCenter.logger.info("drop #{DeliveryCenter.database_config[:database]} database.")
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def ridgepole
|
31
|
+
@ridgepole ||= Ridgepole::Client.new(
|
32
|
+
DeliveryCenter.database_config,
|
33
|
+
dry_run: !options[:apply],
|
34
|
+
debug: false,
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def schemafile
|
39
|
+
DeliveryCenter.root.join('schema', 'Schemafile')
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
class DeliveryCenter::Cli < Thor
|
4
|
+
require 'delivery_center/cli/database'
|
5
|
+
|
6
|
+
desc 'db SUBCOMMAND ...ARGS', 'manage db'
|
7
|
+
subcommand 'db', DeliveryCenter::Cli::Database
|
8
|
+
|
9
|
+
desc 'server', 'run delivery center web application'
|
10
|
+
option 'port', desc: 'listen port', default: 8080, aliases: 'p', type: :numeric
|
11
|
+
option 'address', desc: 'listen address', default: 'localhost', aliases: 'b', type: :string
|
12
|
+
def server
|
13
|
+
DeliveryCenter::App.run!(options)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'delivery_center/errors'
|
2
|
+
|
3
|
+
class DeliveryCenter::Application < DeliveryCenter::ApplicationRecord
|
4
|
+
has_many :revisions, class_name: 'DeliveryCenter::Revision'
|
5
|
+
has_many :deploys, class_name: 'DeliveryCenter::Deploy'
|
6
|
+
|
7
|
+
def can_deploy?
|
8
|
+
current_revision != recent_revision
|
9
|
+
end
|
10
|
+
|
11
|
+
def deploy!
|
12
|
+
self.class.transaction do
|
13
|
+
raise DeliveryCenter::AlreadyDeployedError unless can_deploy?
|
14
|
+
deploy = deploys.find_or_create_by!(revision: recent_revision)
|
15
|
+
deploy.mark_current!
|
16
|
+
deploys.reload # invalidate older current status has object cache
|
17
|
+
deploy
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def can_rollback?
|
22
|
+
current = deploys.find_by(current: true)
|
23
|
+
return false if current.nil?
|
24
|
+
deploys.where('id < :current_id', current_id: current.id).order(id: :desc).exists?
|
25
|
+
end
|
26
|
+
|
27
|
+
def rollback!
|
28
|
+
self.class.transaction do
|
29
|
+
current = deploys.find_by(current: true)
|
30
|
+
raise DeliveryCenter::PreviousDeployNotExistError if current.nil?
|
31
|
+
previous = deploys.where('id < :current_id', current_id: current.id).order(id: :desc).first
|
32
|
+
raise DeliveryCenter::PreviousDeployNotExistError if previous.nil?
|
33
|
+
previous.mark_current!
|
34
|
+
deploys.reload # invalidate older current status has object cache
|
35
|
+
previous
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def current_revision
|
40
|
+
deploys.find_by(current: true)&.revision
|
41
|
+
end
|
42
|
+
|
43
|
+
def recent_revision
|
44
|
+
revisions.last
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class DeliveryCenter::Deploy < DeliveryCenter::ApplicationRecord
|
2
|
+
belongs_to :application, class_name: 'DeliveryCenter::Application'
|
3
|
+
belongs_to :revision, class_name: 'DeliveryCenter::Revision'
|
4
|
+
|
5
|
+
def mark_current!
|
6
|
+
self.class.transaction do
|
7
|
+
self.class.where(application_id: application_id).update_all(current: false)
|
8
|
+
self.current = true
|
9
|
+
self.save!
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
create_table "revisions", unsigned: true, force: :cascade do |t|
|
2
|
+
t.integer :application_id, null: false
|
3
|
+
t.string :value, null: false
|
4
|
+
t.timestamps
|
5
|
+
end
|
6
|
+
|
7
|
+
add_index "revisions", ["application_id", "value"], name: "idx_application_id_value", unique: true, using: :btree
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
|
3
|
+
module DeliveryCenter
|
4
|
+
def self.logger
|
5
|
+
@logger ||= Logger.new(STDOUT)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.root
|
9
|
+
Pathname.new(File.join(__dir__, 'delivery_center'))
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.database_config(excludes: [])
|
13
|
+
config = _database_config
|
14
|
+
excludes.each { |key| config.delete(key) }
|
15
|
+
config
|
16
|
+
end
|
17
|
+
|
18
|
+
def self._database_config
|
19
|
+
if ENV['RACK_ENV'] == 'test'
|
20
|
+
{
|
21
|
+
adapter: 'mysql2',
|
22
|
+
username: ENV['DELIVERY_CENTER_DATABASE_USERNAME'],
|
23
|
+
password: ENV['DELIVERY_CENTER_DATABASE_PASSWORD'],
|
24
|
+
database: ENV['DELIVERY_CENTER_DATABASE_DATABASE'] || 'delivery_center_test',
|
25
|
+
host: ENV['DELIVERY_CENTER_DATABASE_HOST'],
|
26
|
+
port: ENV['DELIVERY_CENTER_DATABASE_PORT'],
|
27
|
+
}
|
28
|
+
else
|
29
|
+
{
|
30
|
+
adapter: 'mysql2',
|
31
|
+
username: ENV['DELIVERY_CENTER_DATABASE_USERNAME'],
|
32
|
+
password: ENV['DELIVERY_CENTER_DATABASE_PASSWORD'],
|
33
|
+
database: ENV['DELIVERY_CENTER_DATABASE_DATABASE'] || 'delivery_center',
|
34
|
+
host: ENV['DELIVERY_CENTER_DATABASE_HOST'],
|
35
|
+
port: ENV['DELIVERY_CENTER_DATABASE_PORT'],
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
require 'delivery_center/app'
|
41
|
+
require 'delivery_center/cli'
|
42
|
+
require 'delivery_center/models'
|
43
|
+
require "delivery_center/version"
|
44
|
+
end
|
metadata
ADDED
@@ -0,0 +1,268 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: delivery_center
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Takatoshi Maeda
|
8
|
+
- tokubai
|
9
|
+
autorequire:
|
10
|
+
bindir: exe
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-07-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: thor
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: sinatra
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: sinatra-contrib
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: activerecord
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: mysql2
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: ridgepole
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: bundler
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.13'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.13'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rake
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '10.0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '10.0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rspec
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 3.6.0
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 3.6.0
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: pry
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: rack-test
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: rspec-json_matcher
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: factory_girl
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: database_rewinder
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
210
|
+
description: deploy management tool
|
211
|
+
email:
|
212
|
+
- me@tmd.tw
|
213
|
+
- developers@tokubai.co.jp
|
214
|
+
executables:
|
215
|
+
- delivery_center
|
216
|
+
extensions: []
|
217
|
+
extra_rdoc_files: []
|
218
|
+
files:
|
219
|
+
- ".gitignore"
|
220
|
+
- ".travis.yml"
|
221
|
+
- Gemfile
|
222
|
+
- README.md
|
223
|
+
- Rakefile
|
224
|
+
- bin/console
|
225
|
+
- bin/setup
|
226
|
+
- delivery_center.gemspec
|
227
|
+
- exe/delivery_center
|
228
|
+
- lib/delivery_center.rb
|
229
|
+
- lib/delivery_center/app.rb
|
230
|
+
- lib/delivery_center/application_record.rb
|
231
|
+
- lib/delivery_center/cli.rb
|
232
|
+
- lib/delivery_center/cli/database.rb
|
233
|
+
- lib/delivery_center/errors.rb
|
234
|
+
- lib/delivery_center/models.rb
|
235
|
+
- lib/delivery_center/models/api_key.rb
|
236
|
+
- lib/delivery_center/models/application.rb
|
237
|
+
- lib/delivery_center/models/deploy.rb
|
238
|
+
- lib/delivery_center/models/revision.rb
|
239
|
+
- lib/delivery_center/schema/Schemafile
|
240
|
+
- lib/delivery_center/schema/api_keys.rb
|
241
|
+
- lib/delivery_center/schema/applications.rb
|
242
|
+
- lib/delivery_center/schema/deploys.rb
|
243
|
+
- lib/delivery_center/schema/revisions.rb
|
244
|
+
- lib/delivery_center/version.rb
|
245
|
+
homepage: https://github.com/tokubai/delivery_center
|
246
|
+
licenses: []
|
247
|
+
metadata: {}
|
248
|
+
post_install_message:
|
249
|
+
rdoc_options: []
|
250
|
+
require_paths:
|
251
|
+
- lib
|
252
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - ">="
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '0'
|
257
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - ">="
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: '0'
|
262
|
+
requirements: []
|
263
|
+
rubyforge_project:
|
264
|
+
rubygems_version: 2.5.2
|
265
|
+
signing_key:
|
266
|
+
specification_version: 4
|
267
|
+
summary: deploy management tool
|
268
|
+
test_files: []
|