deploy_pin 1.2.3 → 1.3.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 +4 -4
- data/README.md +1 -1
- data/Rakefile +3 -23
- data/app/models/deploy_pin/application_record.rb +2 -0
- data/app/models/deploy_pin/record.rb +0 -1
- data/lib/deploy_pin/collector.rb +14 -14
- data/lib/deploy_pin/database.rb +96 -0
- data/lib/deploy_pin/engine.rb +2 -0
- data/lib/deploy_pin/runner.rb +6 -6
- data/lib/deploy_pin/task.rb +18 -18
- data/lib/deploy_pin/task_criteria.rb +5 -5
- data/lib/deploy_pin/version.rb +3 -1
- data/lib/deploy_pin.rb +15 -11
- data/lib/generators/deploy_pin/install/install_generator.rb +5 -3
- data/lib/generators/deploy_pin/install/templates/create_deploy_pins.rb +2 -0
- data/lib/generators/deploy_pin/install/templates/deploy_pin.rb +5 -3
- data/lib/generators/deploy_pin/task/templates/parallel_task.rb.erb +8 -0
- data/lib/generators/deploy_pin/task/templates/task.rb.erb +8 -0
- data/lib/tasks/deploy_pin_tasks.rake +7 -5
- metadata +46 -65
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a760ef5554d4821d4e57eca80bd547a24f5456c7e2bd27768fc2d62db3bad25e
|
|
4
|
+
data.tar.gz: 33e218e88444b4362b29d7f506fcdc455f07c07b4c6760228043b5f403687948
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fbae2f1401711aabf1e88e3e01daeb2b8a1e07a4f3072fb8d54eb9f0f40f0bb74a4eaaed7859cd4119574544a2814393a44dcb7297808db6f89dd7e659d03220
|
|
7
|
+
data.tar.gz: cb8203f11fefb55c2e525fb2b6a2ca82e0d8791b69c64717d3f830bf2c5a3cf91977cb3e3842d780aa6084171795154eb548546a610798a60c53938b35f7173b
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[](https://badge.fury.io/rb/deploy_pin)
|
|
2
2
|

|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
[](https://codeclimate.com/github/skcc321/deploy_pin/maintainability)
|
|
5
5
|
[](https://codeclimate.com/github/skcc321/deploy_pin/test_coverage)
|
|
6
6
|
|
data/Rakefile
CHANGED
|
@@ -1,27 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
require 'bundler/setup'
|
|
3
|
-
rescue LoadError
|
|
4
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
|
-
require '
|
|
8
|
-
|
|
9
|
-
RDoc::Task.new(:rdoc) do |rdoc|
|
|
10
|
-
rdoc.rdoc_dir = 'rdoc'
|
|
11
|
-
rdoc.title = 'DeployPin'
|
|
12
|
-
rdoc.options << '--line-numbers'
|
|
13
|
-
rdoc.rdoc_files.include('README.md')
|
|
14
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
15
|
-
end
|
|
3
|
+
require 'bundler/setup'
|
|
16
4
|
|
|
17
5
|
require 'bundler/gem_tasks'
|
|
18
6
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Rake::TestTask.new(:test) do |t|
|
|
22
|
-
t.libs << 'test'
|
|
23
|
-
t.pattern = 'test/**/*_test.rb'
|
|
24
|
-
t.verbose = false
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
task default: :test
|
|
7
|
+
import 'test/dummy/Rakefile'
|
data/lib/deploy_pin/collector.rb
CHANGED
|
@@ -47,22 +47,22 @@ module DeployPin
|
|
|
47
47
|
|
|
48
48
|
private
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
def files
|
|
51
|
+
Dir["#{DeployPin.tasks_path}/*.rb"]
|
|
52
|
+
end
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
def tasks
|
|
55
|
+
files.map do |file|
|
|
56
|
+
task = DeployPin::Task.new(file)
|
|
57
|
+
task.parse_file
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
# check if task is suitable
|
|
60
|
+
task if task_criteria.suitable?(task)
|
|
61
|
+
end.compact.sort # sort by group position in config
|
|
62
|
+
end
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
def task_criteria
|
|
65
|
+
@task_criteria ||= DeployPin::TaskCriteria.new(identifiers: identifiers)
|
|
66
|
+
end
|
|
67
67
|
end
|
|
68
68
|
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DeployPin
|
|
4
|
+
module Database
|
|
5
|
+
extend self
|
|
6
|
+
|
|
7
|
+
# Run a block under a sql maximum timeout.
|
|
8
|
+
#
|
|
9
|
+
# A default timeout will be get from DeployPin.setup
|
|
10
|
+
#
|
|
11
|
+
# # config/initializers/deploy_pin.rb
|
|
12
|
+
# DeployPin.setup do
|
|
13
|
+
# statement_timeout 0.2.second # 200 ms
|
|
14
|
+
# end
|
|
15
|
+
#
|
|
16
|
+
# # <app root>/deploy_pin/20190401135040_task.rb
|
|
17
|
+
# # 20190401135040:I
|
|
18
|
+
# # task_title: Execute some query with timeout
|
|
19
|
+
#
|
|
20
|
+
# # === task code goes down here ===
|
|
21
|
+
# DeployPin::Database::execute_with_timeout do
|
|
22
|
+
# ActiveRecord::Base.connection.execute("select * from shipments;")
|
|
23
|
+
# end
|
|
24
|
+
#
|
|
25
|
+
# A timeout can be passed as param as well:
|
|
26
|
+
#
|
|
27
|
+
# DeployPin::Database::execute_with_timeout 10.minutes do
|
|
28
|
+
# ActiveRecord::Base.connection.execute("select * from shipments;")
|
|
29
|
+
# end
|
|
30
|
+
#
|
|
31
|
+
# In order to connect to multiple databases, pass the +connected_to+ keyword into the params.
|
|
32
|
+
# The +connected_to+ will use the +ActiveRecord::Base.connected_to+.
|
|
33
|
+
# To connect to a replica database, for example:
|
|
34
|
+
#
|
|
35
|
+
# DeployPin::Database::execute_with_timeout 1.seconds, connected_to: { role: :reading } do
|
|
36
|
+
# Shipment.all # Get all record from replica
|
|
37
|
+
# end
|
|
38
|
+
#
|
|
39
|
+
# Or a specific database:
|
|
40
|
+
#
|
|
41
|
+
# DeployPin::Database.execute_with_timeout 30.second, connected_to: { database: :test_mysql } do
|
|
42
|
+
# ActiveRecord::Base.connection.execute("<some mysql query>")
|
|
43
|
+
# end
|
|
44
|
+
def execute_with_timeout(timeout = DeployPin.statement_timeout, **params, &blk)
|
|
45
|
+
raise ArgumentError, 'timeout must be greater than zero' if timeout.to_f <= 0
|
|
46
|
+
|
|
47
|
+
return call_block_under_timeout(timeout, &blk) unless params.key? :connected_to
|
|
48
|
+
|
|
49
|
+
klass = params[:connected_to].key? :database ? ActiveRecord::Base : ::ApplicationRecord
|
|
50
|
+
klass.connected_to(**params[:connected_to]) do
|
|
51
|
+
call_block_under_timeout(timeout, &blk)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
def call_block_under_timeout(timeout)
|
|
58
|
+
set_max_timeout(timeout)
|
|
59
|
+
|
|
60
|
+
yield
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def set_max_timeout(timeout)
|
|
64
|
+
timeout_in_milliseconds = timeout.to_f.in_milliseconds.ceil # Make sure is always at least 1. 0 turns this off
|
|
65
|
+
|
|
66
|
+
timeout_statement =
|
|
67
|
+
if postgresql?
|
|
68
|
+
postgresql_timeout_statement
|
|
69
|
+
elsif mysql?
|
|
70
|
+
mysql_timeout_statement
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
connection.select_all "#{timeout_statement} #{connection.quote(timeout_in_milliseconds)}"
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def postgresql?
|
|
77
|
+
connection.adapter_name =~ /postg/i
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def postgresql_timeout_statement
|
|
81
|
+
"SET statement_timeout TO"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def mysql?
|
|
85
|
+
connection.adapter_name =~ /mysql/i
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def mysql_timeout_statement
|
|
89
|
+
"SET max_execution_time ="
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def connection
|
|
93
|
+
ActiveRecord::Base.connection
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
data/lib/deploy_pin/engine.rb
CHANGED
data/lib/deploy_pin/runner.rb
CHANGED
|
@@ -10,7 +10,7 @@ module DeployPin
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def self.list(identifiers:)
|
|
13
|
-
DeployPin::Collector.new(identifiers: identifiers).list do |index,
|
|
13
|
+
DeployPin::Collector.new(identifiers: identifiers).list do |index, _count, task|
|
|
14
14
|
self.print("======= Task ##{index} ========".white)
|
|
15
15
|
|
|
16
16
|
# print details
|
|
@@ -18,17 +18,17 @@ module DeployPin
|
|
|
18
18
|
self.print("#{key}:\t\t#{value}")
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
self.print(
|
|
22
|
-
self.print(
|
|
21
|
+
self.print('')
|
|
22
|
+
self.print('<<<')
|
|
23
23
|
self.print task.script.strip.green
|
|
24
|
-
self.print(
|
|
25
|
-
self.print(
|
|
24
|
+
self.print('>>>')
|
|
25
|
+
self.print('')
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def self.summary(identifiers:)
|
|
30
30
|
# print summary
|
|
31
|
-
self.print(
|
|
31
|
+
self.print('======= Summary ========')
|
|
32
32
|
self.print("tasks number: #{DeployPin::Collector.new(identifiers: identifiers).tasks_count}")
|
|
33
33
|
end
|
|
34
34
|
|
data/lib/deploy_pin/task.rb
CHANGED
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
module DeployPin
|
|
5
5
|
class Task
|
|
6
6
|
attr_reader :file,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
:uuid,
|
|
8
|
+
:group,
|
|
9
|
+
:title,
|
|
10
|
+
:script
|
|
11
11
|
|
|
12
12
|
def initialize(file)
|
|
13
13
|
@file = file
|
|
14
14
|
@uuid = nil
|
|
15
15
|
@group = nil
|
|
16
|
-
@title =
|
|
17
|
-
@script =
|
|
16
|
+
@title = ''
|
|
17
|
+
@script = ''
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def run
|
|
@@ -35,10 +35,10 @@ module DeployPin
|
|
|
35
35
|
File.foreach(file) do |line|
|
|
36
36
|
case line.strip
|
|
37
37
|
when /\A# (\d+):(\w+)/
|
|
38
|
-
@uuid =
|
|
39
|
-
@group =
|
|
38
|
+
@uuid = Regexp.last_match(1)
|
|
39
|
+
@group = Regexp.last_match(2)
|
|
40
40
|
when /\A# task_title:(.+)/
|
|
41
|
-
@title =
|
|
41
|
+
@title = Regexp.last_match(1).strip
|
|
42
42
|
when /\A[^#].*/
|
|
43
43
|
@script += line
|
|
44
44
|
end
|
|
@@ -53,20 +53,20 @@ module DeployPin
|
|
|
53
53
|
}
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
def eql?(
|
|
56
|
+
def eql?(other)
|
|
57
57
|
# same script & different uuid
|
|
58
|
-
script ==
|
|
58
|
+
script == other.script && uuid != other.uuid
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
protected
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
# for sorting
|
|
64
|
+
def <=>(other)
|
|
65
|
+
group_index <=> other.group_index
|
|
66
|
+
end
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
def group_index
|
|
69
|
+
DeployPin.groups.index(group)
|
|
70
|
+
end
|
|
71
71
|
end
|
|
72
72
|
end
|
|
@@ -14,16 +14,16 @@ module DeployPin
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def suitable?(task)
|
|
17
|
-
task_cover =
|
|
18
|
-
items = identifiers.flat_map {|x| x.to_s.scan(regexp) }.flatten
|
|
17
|
+
task_cover = lambda { |task, regexp|
|
|
18
|
+
items = identifiers.flat_map { |x| x.to_s.scan(regexp) }.flatten
|
|
19
19
|
|
|
20
20
|
items & [task.group, task.uuid]
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
return false if task_cover.(task, SKIP_REGEXEP).any?
|
|
24
|
-
return true if task_cover.(task, FORCE_REGEXP).any?
|
|
23
|
+
return false if task_cover.call(task, SKIP_REGEXEP).any?
|
|
24
|
+
return true if task_cover.call(task, FORCE_REGEXP).any?
|
|
25
25
|
|
|
26
|
-
task_cover.(task, COMMON_REGEXP).any? && !task.done?
|
|
26
|
+
task_cover.call(task, COMMON_REGEXP).any? && !task.done?
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
end
|
data/lib/deploy_pin/version.rb
CHANGED
data/lib/deploy_pin.rb
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'deploy_pin/runner'
|
|
4
|
+
require 'deploy_pin/collector'
|
|
5
|
+
require 'deploy_pin/task'
|
|
6
|
+
require 'deploy_pin/task_criteria'
|
|
7
|
+
require 'deploy_pin/engine'
|
|
8
|
+
require 'deploy_pin/database'
|
|
9
|
+
require 'parallel'
|
|
10
|
+
require 'ruby-progressbar'
|
|
11
|
+
require 'colorize'
|
|
9
12
|
|
|
10
13
|
module DeployPin
|
|
11
|
-
OPTIONS = %i
|
|
14
|
+
OPTIONS = %i[
|
|
12
15
|
tasks_path
|
|
13
16
|
fallback_group
|
|
14
17
|
groups
|
|
15
|
-
|
|
18
|
+
statement_timeout
|
|
19
|
+
].freeze
|
|
16
20
|
|
|
17
21
|
OPTIONS.each do |option|
|
|
18
22
|
instance_eval %{
|
|
@@ -21,7 +25,7 @@ module DeployPin
|
|
|
21
25
|
|
|
22
26
|
@@#{option} = val
|
|
23
27
|
end
|
|
24
|
-
}
|
|
28
|
+
}, __FILE__, __LINE__ - 6
|
|
25
29
|
end
|
|
26
30
|
|
|
27
31
|
def self.setup(&block)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class DeployPin::InstallGenerator < Rails::Generators::Base
|
|
2
4
|
include Rails::Generators::Migration
|
|
3
5
|
|
|
4
6
|
source_root File.expand_path('templates', __dir__)
|
|
5
|
-
desc
|
|
7
|
+
desc 'Add the migration & initializer for DeployPin'
|
|
6
8
|
|
|
7
9
|
def self.next_migration_number(path)
|
|
8
10
|
next_migration_number = current_migration_number(path) + 1
|
|
@@ -10,10 +12,10 @@ class DeployPin::InstallGenerator < Rails::Generators::Base
|
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
def copy_migrations
|
|
13
|
-
migration_template
|
|
15
|
+
migration_template 'create_deploy_pins.rb', 'db/migrate/create_deploy_pins.rb'
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
def copy_initializer
|
|
17
|
-
template
|
|
19
|
+
template 'deploy_pin.rb', 'config/initializers/deploy_pin.rb'
|
|
18
20
|
end
|
|
19
21
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# <%= @uuid %>:<%= group %>
|
|
2
4
|
# task_title: super duper task
|
|
3
5
|
|
|
@@ -9,4 +11,10 @@ Parallel.each(DeployPin::Record.where(uuid: "hello"), progress: "Doing stuff") d
|
|
|
9
11
|
pin.update_attribute(:uuid, "new uuid")
|
|
10
12
|
end
|
|
11
13
|
sleep(0.2)
|
|
14
|
+
|
|
15
|
+
# DeployPin::Database::execute_with_timeout 10.minutes do
|
|
16
|
+
# ActiveRecord::Base.connection.execute("select * from shipments;")
|
|
17
|
+
# or
|
|
18
|
+
# Shipment.all
|
|
19
|
+
# end
|
|
12
20
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# <%= @uuid %>:<%= group %>
|
|
2
4
|
# task_title: super duper task
|
|
3
5
|
|
|
@@ -5,3 +7,9 @@
|
|
|
5
7
|
progressbar = ProgressBar.create(title: "Doing stuff", total: 20, format: '%t |%E | %B | %a')
|
|
6
8
|
|
|
7
9
|
20.times { progressbar.increment; sleep(0.2) }
|
|
10
|
+
|
|
11
|
+
# DeployPin::Database::execute_with_timeout 10.minutes do
|
|
12
|
+
# ActiveRecord::Base.connection.execute("select * from shipments;")
|
|
13
|
+
# or
|
|
14
|
+
# Shipment.all
|
|
15
|
+
# end
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
namespace :deploy_pin do
|
|
2
|
-
desc
|
|
3
|
-
task :run, [:identifiers] => :environment do |
|
|
4
|
+
desc 'run pending tasks'
|
|
5
|
+
task :run, [:identifiers] => :environment do |_t, args|
|
|
4
6
|
identifiers = args.identifiers
|
|
5
7
|
attributes = identifiers.nil? ? DeployPin.groups : identifiers.split(/\s*,\s*/)
|
|
6
8
|
|
|
7
9
|
DeployPin::Runner.run(identifiers: attributes)
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
task :list, [:identifiers] => :environment
|
|
12
|
+
task :list, [:identifiers] => :environment do |_t, args|
|
|
11
13
|
args.with_defaults(identifiers: DeployPin.groups)
|
|
12
14
|
|
|
13
|
-
DeployPin::Runner.list(args)
|
|
14
|
-
DeployPin::Runner.summary(args)
|
|
15
|
+
DeployPin::Runner.list(**args)
|
|
16
|
+
DeployPin::Runner.summary(**args)
|
|
15
17
|
end
|
|
16
18
|
end
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: deploy_pin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
autorequire:
|
|
7
|
+
- Viktor Sych
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-02-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: colorize
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: parallel
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -39,41 +39,41 @@ dependencies:
|
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '1.16'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: rails
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 6.0.1
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 6.0.1
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: ruby-progressbar
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: '1.10'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: '1.10'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: bundler
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
75
|
version: '0'
|
|
76
|
-
type: :
|
|
76
|
+
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
@@ -81,95 +81,75 @@ dependencies:
|
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.16.0
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.16.0
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: bundler
|
|
84
|
+
name: minitest
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
|
100
86
|
requirements:
|
|
101
|
-
- - "
|
|
87
|
+
- - ">="
|
|
102
88
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
89
|
+
version: '0'
|
|
104
90
|
type: :development
|
|
105
91
|
prerelease: false
|
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
93
|
requirements:
|
|
108
|
-
- - "
|
|
94
|
+
- - ">="
|
|
109
95
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
96
|
+
version: '0'
|
|
111
97
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
98
|
+
name: mysql2
|
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
|
114
100
|
requirements:
|
|
115
|
-
- - "
|
|
101
|
+
- - ">="
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0
|
|
103
|
+
version: '0'
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
107
|
requirements:
|
|
122
|
-
- - "
|
|
108
|
+
- - ">="
|
|
123
109
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0
|
|
110
|
+
version: '0'
|
|
125
111
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
112
|
+
name: pg
|
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
|
128
114
|
requirements:
|
|
129
|
-
- - "
|
|
115
|
+
- - ">="
|
|
130
116
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
117
|
+
version: '0'
|
|
132
118
|
type: :development
|
|
133
119
|
prerelease: false
|
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
121
|
requirements:
|
|
136
|
-
- - "
|
|
122
|
+
- - ">="
|
|
137
123
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
124
|
+
version: '0'
|
|
139
125
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name:
|
|
126
|
+
name: pry
|
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
|
142
128
|
requirements:
|
|
143
|
-
- - "
|
|
129
|
+
- - ">="
|
|
144
130
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 0
|
|
131
|
+
version: '0'
|
|
146
132
|
type: :development
|
|
147
133
|
prerelease: false
|
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
135
|
requirements:
|
|
150
|
-
- - "
|
|
136
|
+
- - ">="
|
|
151
137
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 0
|
|
138
|
+
version: '0'
|
|
153
139
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name:
|
|
140
|
+
name: rubocop
|
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
|
156
142
|
requirements:
|
|
157
|
-
- - "~>"
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '0.18'
|
|
160
143
|
- - ">="
|
|
161
144
|
- !ruby/object:Gem::Version
|
|
162
|
-
version: 0
|
|
145
|
+
version: '0'
|
|
163
146
|
type: :development
|
|
164
147
|
prerelease: false
|
|
165
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
166
149
|
requirements:
|
|
167
|
-
- - "~>"
|
|
168
|
-
- !ruby/object:Gem::Version
|
|
169
|
-
version: '0.18'
|
|
170
150
|
- - ">="
|
|
171
151
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: 0
|
|
152
|
+
version: '0'
|
|
173
153
|
description: pin some task around deployment to execute them during deployment circle
|
|
174
154
|
email:
|
|
175
155
|
- skcc321@gmail.com
|
|
@@ -184,6 +164,7 @@ files:
|
|
|
184
164
|
- app/models/deploy_pin/record.rb
|
|
185
165
|
- lib/deploy_pin.rb
|
|
186
166
|
- lib/deploy_pin/collector.rb
|
|
167
|
+
- lib/deploy_pin/database.rb
|
|
187
168
|
- lib/deploy_pin/engine.rb
|
|
188
169
|
- lib/deploy_pin/runner.rb
|
|
189
170
|
- lib/deploy_pin/task.rb
|
|
@@ -203,7 +184,7 @@ licenses:
|
|
|
203
184
|
- MIT
|
|
204
185
|
metadata:
|
|
205
186
|
allowed_push_host: https://rubygems.org
|
|
206
|
-
post_install_message:
|
|
187
|
+
post_install_message:
|
|
207
188
|
rdoc_options: []
|
|
208
189
|
require_paths:
|
|
209
190
|
- lib
|
|
@@ -218,8 +199,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
218
199
|
- !ruby/object:Gem::Version
|
|
219
200
|
version: '0'
|
|
220
201
|
requirements: []
|
|
221
|
-
rubygems_version: 3.
|
|
222
|
-
signing_key:
|
|
202
|
+
rubygems_version: 3.2.22
|
|
203
|
+
signing_key:
|
|
223
204
|
specification_version: 4
|
|
224
205
|
summary: pin some task around deployment
|
|
225
206
|
test_files: []
|