capistrano_multiconfig_parallel 0.21.8 → 0.22.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e0b5a6c4d757da56822db1d3841df24d849005f
4
- data.tar.gz: 47e706d3ca497fcce259094b026baeda873fa173
3
+ metadata.gz: 89e48073b8b6708baeb5b39f98744f373ab3abab
4
+ data.tar.gz: 1052b93deab26bec15a3ba72c30c9f690c41a605
5
5
  SHA512:
6
- metadata.gz: 156d0a858b5cac59ae2e393ec367f010b47efff8d212826eee6e5c45ea1446ab780f9200a1e7a728b36b0a2d8df71885e1d49f801c8996dd0939982407e85f16
7
- data.tar.gz: e10b68c1ac518825a070dd221d77ab8c80a02c2e74ec5ca42e09431d87bda94ef32864e2a805a88bad2b626ded2cd44ab99e92c0b1cad657c957b579d990a907
6
+ metadata.gz: 3da4fd7ec16bc1d1a089c5d1ebf681250c3e65c711945114374ebe9c4c1e2567de44554582e152c3ff4b8f2661cd9d0d86ba31058876ea91cc6b5741bd2c255d
7
+ data.tar.gz: 76ac0e57d3c78760b9f710207c54efcc6356f5beef76479d3f1636f17105cc9b31c2cd2167cb9d57471b3fef3ef62603086ae4feea61066932e22ad09ea7c209
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency 'eventmachine', '~> 1.0', '>= 1.0.3'
26
26
  s.add_runtime_dependency 'right_popen', '~> 1.1', '>= 1.1.3'
27
27
  s.add_runtime_dependency 'capistrano','~> 3.0','>= 3.0'
28
+ s.add_runtime_dependency 'capistrano-multiconfig','~> 3.0','>= 3.0.8'
28
29
  s.add_runtime_dependency 'activesupport', '~> 4.0','>= 4.0'
29
30
  s.add_runtime_dependency 'configliere', '~> 0.4', '>=0.4'
30
31
  s.add_runtime_dependency 'inquirer', '~> 0.2', '>= 0.2'
@@ -1 +1 @@
1
- require_relative './capistrano_multiconfig_parallel/version'
1
+ require 'capistrano_multiconfig_parallel/all'
@@ -1,35 +1,37 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
3
  require 'bundler/setup'
4
- require 'rake'
5
4
  require 'active_support/core_ext/object/blank'
6
5
  require 'active_support/core_ext/hash/keys'
7
6
  require 'active_support/concern'
7
+
8
8
  require 'celluloid/autostart'
9
9
  require 'celluloid/pmap'
10
+
10
11
  require 'composable_state_machine'
11
12
  require 'eventmachine'
12
13
  require 'right_popen'
13
14
  require 'colorize'
14
- require 'logger'
15
15
  require 'terminal-table'
16
-
17
16
  require 'celluloid_pubsub'
18
- require 'capistrano/all'
19
- require 'fileutils'
20
-
21
17
  require 'configliere'
22
- require 'pp'
23
18
  require 'devnull'
24
19
  require 'inquirer'
20
+
21
+ require 'logger'
22
+ require 'fileutils'
23
+ require 'pp'
25
24
  require 'yaml'
26
25
  require 'stringio'
26
+
27
+ # capistrano requirements
28
+ require 'rake'
29
+ require 'capistrano/all'
30
+
27
31
  # fix error with not files that can not be found
28
32
  Gem.find_files('composable_state_machine/**/*.rb').each { |path| require path }
29
33
 
30
- Gem.find_files('capistrano_multiconfig_parallel/classes/**/*.rb').each { |path| require path }
31
- Gem.find_files('capistrano_multiconfig_parallel/helpers/**/*.rb').each { |path| require path }
32
- Gem.find_files('capistrano_multiconfig_parallel/celluloid/**/*.rb').each { |path| require path }
34
+ Gem.find_files('capistrano_multiconfig_parallel/**/*.rb').each { |path| require path }
33
35
 
34
36
  require_relative './version'
35
37
  require_relative './base'
@@ -6,12 +6,11 @@ module CapistranoMulticonfigParallel
6
6
  include Celluloid::Logger
7
7
  include CapistranoMulticonfigParallel::ApplicationHelper
8
8
 
9
- attr_reader :stages, :stage_apps, :top_level_tasks, :jobs, :branch_backup, :condition, :manager, :dependency_tracker, :application, :stage, :name, :args, :argv, :default_stage
9
+ attr_reader :stage_apps, :top_level_tasks, :jobs, :branch_backup, :condition, :manager, :dependency_tracker, :application, :stage, :name, :args, :argv, :default_stage
10
10
 
11
11
  def initialize
12
12
  Celluloid.boot
13
- @stages = fetch_stages
14
- @stage_apps = multi_apps? ? @stages.map { |stage| stage.split(':').reverse[1] }.uniq : []
13
+ @stage_apps = multi_apps? ? stages.map { |stage| stage.split(':').reverse[1] }.uniq : []
15
14
  collect_command_line_tasks(CapistranoMulticonfigParallel.original_args)
16
15
  @jobs = []
17
16
  end
@@ -55,14 +54,14 @@ module CapistranoMulticonfigParallel
55
54
 
56
55
  def custom_command?
57
56
  if multi_apps?
58
- !@stages.include?(@top_level_tasks.first) && custom_commands.include?(@top_level_tasks.first)
57
+ !stages.include?(@top_level_tasks.first) && custom_commands.include?(@top_level_tasks.first)
59
58
  else
60
- !@stages.include?(@top_level_tasks.second) && @stages.include?(@top_level_tasks.first) && custom_commands.include?(@top_level_tasks.second)
59
+ !stages.include?(@top_level_tasks.second) && stages.include?(@top_level_tasks.first) && custom_commands.include?(@top_level_tasks.second)
61
60
  end
62
61
  end
63
62
 
64
63
  def multi_apps?
65
- @stages.find { |stage| stage.include?(':') }.present?
64
+ stages.find { |stage| stage.include?(':') }.present?
66
65
  end
67
66
 
68
67
  def initialize_data
@@ -220,8 +219,8 @@ module CapistranoMulticonfigParallel
220
219
  job_env_options = custom_command? && env_options['ACTION'].present? ? env_options.except('ACTION') : env_options
221
220
 
222
221
  job = CapistranoMulticonfigParallel::Job.new(Actor.current, options.merge(
223
- action: custom_command? && env_options['ACTION'].present? ? env_options['ACTION'] : options['action'],
224
- env_options: job_env_options
222
+ action: custom_command? && env_options['ACTION'].present? ? env_options['ACTION'] : options['action'],
223
+ env_options: job_env_options
225
224
  ))
226
225
  @jobs << job
227
226
  end
@@ -27,8 +27,8 @@ module CapistranoMulticonfigParallel
27
27
  end
28
28
  end
29
29
  EM.error_handler do|e|
30
- log_to_file("Error during event loop for worker #{@job_id}: #{e.inspect}", @job_id)
31
- log_to_file(e.backtrace, @job_id)
30
+ log_to_file("Error during event loop for worker #{@job_id}: #{e.inspect}", job_id: @job_id)
31
+ log_to_file(e.backtrace, job_id: @job_id)
32
32
  EM.stop
33
33
  end
34
34
  end
@@ -93,7 +93,7 @@ module CapistranoMulticonfigParallel
93
93
  end
94
94
 
95
95
  def io_callback(io, data)
96
- log_to_file("#{io.upcase} ---- #{data}", @job_id)
96
+ log_to_file("#{io.upcase} ---- #{data}", job_id: @job_id)
97
97
  end
98
98
  end
99
99
  end
@@ -25,7 +25,7 @@ module CapistranoMulticonfigParallel
25
25
 
26
26
  def notify_time_change(_topic, _message)
27
27
  table = Terminal::Table.new(title: 'Deployment Status Table', headings: ['Job ID', 'Job UUID', 'App/Stage', 'Action', 'ENV Variables', 'Current Task'])
28
- jobs = @manager.alive? ? @manager.jobs : []
28
+ jobs = @manager.alive? ? @manager.jobs.dup : []
29
29
  setup_table_jobs(table, jobs)
30
30
  display_table_on_terminal(table)
31
31
  end
@@ -9,11 +9,11 @@ module CapistranoMulticonfigParallel
9
9
  attr_writer :status, :exit_status
10
10
 
11
11
  delegate :job_stage,
12
- :capistrano_action,
13
- :build_capistrano_task,
14
- :execute_standard_deploy,
15
- :setup_command_line_standard,
16
- to: :command
12
+ :capistrano_action,
13
+ :build_capistrano_task,
14
+ :execute_standard_deploy,
15
+ :setup_command_line_standard,
16
+ to: :command
17
17
 
18
18
  def initialize(application, options)
19
19
  @options = options
@@ -35,7 +35,7 @@ module CapistranoMulticonfigParallel
35
35
  { value: id.to_s },
36
36
  { value: job_stage },
37
37
  { value: capistrano_action },
38
- { value: setup_command_line_standard(filtered_keys: [CapistranoMulticonfigParallel::ENV_KEY_JOB_ID]).join("\n") },
38
+ { value: setup_command_line_standard(filtered_keys: [env_variable]).join("\n") },
39
39
  { value: worker_state }
40
40
  ]
41
41
  end
@@ -1,5 +1,4 @@
1
1
  require_relative './all'
2
- Gem.find_files('capistrano_multiconfig_parallel/initializers/**/*.rb').each { |path| require path }
3
2
  module CapistranoMulticonfigParallel
4
3
  # this is the class that will be invoked from terminal , and willl use the invoke task as the primary function.
5
4
  class CLI
@@ -16,6 +16,10 @@ module CapistranoMulticonfigParallel
16
16
 
17
17
  module_function
18
18
 
19
+ def find_loaded_gem(name)
20
+ Gem.loaded_specs.values.find { |repo| repo.name == name }
21
+ end
22
+
19
23
  def percent_of(index, total)
20
24
  index.to_f / total.to_f * 100.0
21
25
  end
@@ -16,10 +16,6 @@ module CapistranoMulticonfigParallel
16
16
  $stdout.sync = true if $stdout.isatty
17
17
  end
18
18
 
19
- def find_loaded_gem(name)
20
- Gem.loaded_specs.values.find { |repo| repo.name == name }
21
- end
22
-
23
19
  def ask_stdout_confirmation(message, default)
24
20
  result = Ask.input message, default: default
25
21
  $stdout.flush
@@ -54,18 +50,25 @@ module CapistranoMulticonfigParallel
54
50
  return if error_filtered?(error)
55
51
  message = format_error(error)
56
52
  puts(message) if output.present?
57
- log_to_file(message)
53
+ log_to_file(message, log_method: 'fatal')
58
54
  end
59
55
 
60
- def format_error(error)
61
- JSON.pretty_generate(class_name: error.class,
62
- message: error.respond_to?(:message) ? error.message : error.inspect,
63
- backtrace: error.respond_to?(:backtrace) ? error.backtrace.join("\n\n") : '')
56
+ def format_error(exception)
57
+ message = "\n#{exception.class} (#{exception.respond_to?(:message) ? exception.message : exception.inspect}):\n"
58
+ message << exception.annoted_source_code.to_s if exception.respond_to?(:annoted_source_code)
59
+ message << ' ' << exception.backtrace.join("\n ") if exception.respond_to?(:backtrace)
60
+ message
64
61
  end
65
62
 
66
- def log_to_file(message, job_id = nil)
67
- worker_log = job_id.present? ? find_worker_log(job_id) : logger
68
- worker_log.debug(message) if worker_log.present? && app_debug_enabled?
63
+ def log_to_file(message, options = {})
64
+ worker_log = options.fetch(:job_id, '').present? ? find_worker_log(options[:job_id]) : logger
65
+ print_to_log_file(worker_log, options.merge(message: message)) if worker_log.present? && app_debug_enabled?
66
+ end
67
+
68
+ def print_to_log_file(worker_log, options = {})
69
+ ActiveSupport::Deprecation.silence do
70
+ worker_log.send(options.fetch(:log_method, 'debug'), "#{options.fetch(:message, '')}\n")
71
+ end
69
72
  end
70
73
 
71
74
  def find_worker_log(job_id)
@@ -1,11 +1,12 @@
1
1
  module CapistranoMulticonfigParallel
2
2
  # module used to fetch the stages (code taken from https://github.com/railsware/capistrano-multiconfig)
3
3
  # TODO: find a way to do this without copying code. Can't currently use gem specification to require that gem
4
- # because that is only compatible with capistrano version 3
4
+ # because seems to not work properly after capistrano/all is required. It seems to only work in Capfile if is required.
5
+ # Still investigating how to make that work.
5
6
  module StagesHelper
6
7
  module_function
7
8
 
8
- def fetch_stages
9
+ def stages
9
10
  fetch_stages_paths do |paths|
10
11
  checks_paths(paths)
11
12
  end
@@ -25,7 +26,7 @@ module CapistranoMulticonfigParallel
25
26
  end
26
27
 
27
28
  def stages_paths
28
- stages_root = 'config/deploy'
29
+ stages_root = File.expand_path(File.join(detect_root, 'config/deploy'))
29
30
  Dir["#{stages_root}/**/*.rb"].map do |file|
30
31
  file.slice(stages_root.size + 1..-4).tr('/', ':')
31
32
  end
@@ -7,8 +7,8 @@ module CapistranoMulticonfigParallel
7
7
  # module used for generating the version
8
8
  module VERSION
9
9
  MAJOR = 0
10
- MINOR = 21
11
- TINY = 8
10
+ MINOR = 22
11
+ TINY = 0
12
12
  PRE = nil
13
13
 
14
14
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_multiconfig_parallel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.8
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-09 00:00:00.000000000 Z
11
+ date: 2015-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: celluloid-pmap
@@ -170,6 +170,26 @@ dependencies:
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
172
  version: '3.0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: capistrano-multiconfig
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '3.0'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 3.0.8
183
+ type: :runtime
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '3.0'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 3.0.8
173
193
  - !ruby/object:Gem::Dependency
174
194
  name: activesupport
175
195
  requirement: !ruby/object:Gem::Requirement