negroku 2.0.0.pre7 → 2.0.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: 359805e3a2df5b2269f1fc5d75c7bbe8d84d8b02
4
- data.tar.gz: bfcbaa8204a7e548042179f999a028ca09a344f7
3
+ metadata.gz: 24cc285eb9ad2b4813daa33d542768b9d5b847d0
4
+ data.tar.gz: 7d75f4b9772ef0e518da35a78123fa87ff1a07ff
5
5
  SHA512:
6
- metadata.gz: 6662dc3bba237e60b002d04bf7bcfb339958bf02ce3d2bf0801a9c6bac4fa0001e48904240346cd24d1fe4712bb98455bc782168af8e1900fb1a26c8e8a752a9
7
- data.tar.gz: 8c41224e40842eedaf08e1b00f5bbd22cd4f60bb2abfdffaaebc68f28749982c6f3612317596686223386f3d41ef7cac4a9b2f767f69540e38d0aad06556ffcd
6
+ metadata.gz: fe22dc6821c831de3b2ca26cd7cf45720ecb6eadaff61f9f89f37303dfdfeb3b7ad63c52be882e601022274f1b1f631d1327742ce4c2314dc81ff5c3ba201da0
7
+ data.tar.gz: 0699cbe9a573d0e0ca403e579e6686ebb8bb50450319e3d595f173618cc340c202a1297d8466c52aee04ff776acdcb4294da0beeb37a7a2241f18e768f3a515b
data/lib/negroku/cli.rb CHANGED
@@ -3,7 +3,7 @@ require 'capistrano/setup'
3
3
  require 'capistrano/deploy'
4
4
 
5
5
  # Load applications deploy config if it exists
6
- require './config/deploy' if File.exists? "./config/deploy"
6
+ require './config/deploy' if File.exists? "./config/deploy.rb"
7
7
 
8
8
  require 'gli'
9
9
  require 'inquirer'
@@ -16,6 +16,8 @@ namespace :load do
16
16
 
17
17
  set :linked_files, fetch(:linked_files, []) + %w{}
18
18
  end
19
+
20
+ after "deploy", "deploy:cleanup"
19
21
  end
20
22
 
21
23
  # Load Negroku tasks
@@ -1,9 +1,9 @@
1
- def watch_process(name, template = "tasks/eye/_#{name}.erb")
1
+ def watch_process(name, options = {})
2
2
  processes = fetch(:eye_watched_processes, {})
3
3
 
4
- processes[name] = {
5
- template: template
6
- }
4
+ options[:template] ||= "tasks/eye/_#{name}.erb"
5
+
6
+ processes[name] = options
7
7
 
8
8
  set :eye_watched_processes, processes
9
9
  end
@@ -7,6 +7,8 @@ namespace :load do
7
7
  set :delayed_job_workers, 1
8
8
  set :delayed_job_queues, nil
9
9
  set :delayed_job_pool, nil
10
+
11
+ set :delayed_job_prefix, -> { "#{fetch(:application)}" }
10
12
  end
11
13
  end
12
14
 
@@ -1,21 +1,49 @@
1
1
  #########
2
2
  ## Adds support to monitor delayed_job processes through eye
3
3
  #########
4
+ def delayed_job_args
5
+ args = []
6
+ args << "--queues=#{fetch(:delayed_job_queues).join(',')}" unless fetch(:delayed_job_queues).nil?
7
+ args << "--prefix=#{fetch(:delayed_job_prefix)}" unless fetch(:delayed_job_prefix).nil?
8
+ args << fetch(:delayed_job_pools, {}).map {|k,v| "--pool=#{k}:#{v}"}.join(' ') unless fetch(:delayed_job_pools).nil?
9
+ args.join(' ')
10
+ end
11
+
12
+ def delayed_job_bin
13
+ "#{fetch(:delayed_job_bin_path)}/delayed_job"
14
+ end
15
+
16
+ def delayed_job_start_command
17
+ "#{fetch(:rbenv_prefix)} bundle exec #{delayed_job_bin} #{delayed_job_args} -i \#{i} start"
18
+ end
19
+
20
+ def delayed_job_stop_command
21
+ "#{fetch(:rbenv_prefix)} bundle exec #{delayed_job_bin} -i \#{i} stop"
22
+ end
4
23
 
5
24
  # Watch the delayed_job processes using the build in template
6
- watch_process(:delayed_job);
25
+ namespace :eye do
26
+ task :watch_process do
27
+
28
+ watch_process(:delayed_job, {
29
+ start_command: delayed_job_start_command,
30
+ stop_command: delayed_job_stop_command
31
+ })
32
+
33
+ end
34
+ end
7
35
 
8
36
  # Override start, restart and stop delayed_job tasks to so they call
9
37
  # the eye equivalents
10
- # namespace :unicorn do
11
- # ['start','restart','stop'].each do |cmd|
12
- # if Rake::Task.task_defined?("unicorn:#{cmd}")
13
- # Rake::Task["unicorn:#{cmd}"].clear_actions
14
- # # Reload or restart unicorn after the application is published
15
- # desc "#{cmd} unicorn through eye"
16
- # task cmd do
17
- # invoke "eye:#{cmd}", 'unicorn'
18
- # end
19
- # end
20
- # end
21
- # end
38
+ namespace :delayed_job do
39
+ ['start','restart','stop'].each do |cmd|
40
+ if Rake::Task.task_defined?("delayed_job:#{cmd}")
41
+ Rake::Task["delayed_job:#{cmd}"].clear_actions
42
+ # Reload or restart delayed_job after the application is published
43
+ desc "using eye"
44
+ task cmd do
45
+ invoke "eye:#{cmd}", 'delayed-job'
46
+ end
47
+ end
48
+ end
49
+ end
@@ -3,7 +3,13 @@
3
3
  #########
4
4
 
5
5
  # Watch the unicorn processes using the build in template
6
- watch_process(:unicorn);
6
+ namespace :eye do
7
+ task :watch_process do
8
+
9
+ watch_process(:unicorn);
10
+
11
+ end
12
+ end
7
13
 
8
14
  # Override start, restart and stop unicorn tasks to so they call
9
15
  # the eye equivalents
@@ -12,6 +12,10 @@ namespace :load do
12
12
  # Local path to look for custom config template
13
13
  set :eye_application_template, -> { "config/deploy/#{fetch(:stage)}/eye.rb.erb" }
14
14
 
15
+ # Application level notifications
16
+ set :eye_notification_contact, -> { :monitor }
17
+ set :eye_notification_level, -> { :error }
18
+
15
19
  # Add eye to :rbenv_map_bins
16
20
  fetch(:rbenv_map_bins) << 'eye'
17
21
  end
@@ -23,28 +27,20 @@ namespace :eye do
23
27
  desc "Loads eye config and starts monitoring"
24
28
  task :load do
25
29
  on release_roles fetch(:eye_roles) do
26
- within "#{current_path}" do
30
+ within current_path do
27
31
  execute :eye, :load, "#{shared_path}/config/eye.rb"
28
32
  end
29
33
  end
30
34
  end
31
35
 
32
36
  [:start,:restart, :info, :stop].each do |cmd|
33
- # Single process
34
- desc "Calls eye's #{cmd.to_s} on a process"
35
- task "#{cmd}:process", [:name] do |t, args|
36
- on release_roles fetch(:eye_roles) do
37
- within "#{current_path}" do
38
- execute :eye, cmd, "#{args[:name]}"
39
- end
40
- end
41
- end
42
- #
43
37
  desc "Calls eye's #{cmd.to_s} on the whole app"
44
- task cmd do |t, args|
38
+ task cmd, [:mask] do |t, args|
45
39
  on release_roles fetch(:eye_roles) do
46
- within "#{current_path}" do
47
- execute :eye, cmd, "#{fetch(:application)}"
40
+ within current_path do
41
+ mask = fetch(:application)
42
+ mask += ":#{args[:mask]}" if args[:mask]
43
+ execute :eye, cmd, mask
48
44
  end
49
45
  end
50
46
  end
@@ -58,7 +54,7 @@ namespace :negroku do
58
54
  namespace :eye do
59
55
 
60
56
  desc "Upload eye configuration file"
61
- task :setup do
57
+ task :setup => 'eye:watch_process' do
62
58
  on release_roles fetch(:eye_roles) do
63
59
  within "#{shared_path}/config" do
64
60
  processes = fetch(:eye_watched_processes, {})
@@ -78,7 +74,7 @@ namespace :negroku do
78
74
  end
79
75
  end
80
76
 
81
- after "deploy:published", "negroku:eye:setup"
77
+ before "deploy:published", "negroku:eye:setup"
82
78
  after "negroku:eye:setup", "eye:load"
83
79
 
84
80
  define_logs(:eye, {
@@ -78,7 +78,7 @@ namespace :negroku do
78
78
  end
79
79
 
80
80
  # Reload or restart unicorn after the application is published
81
- after 'deploy:publishing', 'restart' do
81
+ after 'deploy:published', 'restart' do
82
82
  invoke 'negroku:unicorn:setup'
83
83
  invoke 'unicorn:restart'
84
84
  end
@@ -11,3 +11,8 @@ set :branch, '<%= data[:branch] %>' # Optional, defaults to master
11
11
 
12
12
  # Rails configuration
13
13
  # set :rails_env, 'production'
14
+
15
+ # Eye monitoring notifications
16
+ # set :eye_notification_contact, :dev_team # Optional, defaults to :monitor
17
+ # set :eye_notification_level, :info # Optional, defaults to :error
18
+
@@ -1,28 +1,21 @@
1
- cwd = File.expand_path(File.join(File.dirname(__FILE__), %w[ ../ ../ ]))
1
+ group 'delayed-jobs' do
2
+ chain grace: 10.seconds
2
3
 
3
- config_path = File.join(cwd, %w{ config dj.yml } )
4
+ start_timeout 20.seconds
5
+ stop_timeout 20.seconds
6
+ restart_timeout 20.seconds
4
7
 
5
- workers_count = if File.exists?(config_path)
6
- YAML.load_file(config_path).try(:[], :workers) || 5
7
- else
8
- 5
9
- end
8
+ workers_count = '<%= fetch(:delayed_job_workers || 1) %>'.to_i
10
9
 
11
- Eye.application 'delayed_job' do
12
- working_dir cwd
13
- stop_on_delete true
10
+ (0 ... workers_count.to_i).each do |i|
14
11
 
15
- group 'dj' do
16
- chain grace: 5.seconds
12
+ process "worker-#{i}" do
13
+ pid_file "tmp/pids/delayed_job.#{i}.pid"
14
+ start_command "<%= options[:start_command] %>"
15
+ stop_command "<%= options[:stop_command] %>"
16
+ end
17
17
 
18
- (1 .. workers_count).each do |i|
19
- process "dj-#{i}" do
20
- pid_file "tmp/pids/delayed_job.#{i}.pid"
21
- start_command "rake jobs:work"
22
- daemonize true
23
- stop_signals [:INT, 30.seconds, :TERM, 10.seconds, :KILL]
24
- stdall "log/dj-#{i}.log"
25
- end
26
18
  end
19
+
27
20
  end
28
- end
21
+
@@ -1,9 +1,6 @@
1
- RAILS_ENV="<%= fetch(:rails_env) %>"
2
-
3
1
  process 'unicorn' do
4
- env rbenv_root: "<%= fetch(:rbenv_path) %>", rbenv_version: "<%=fetch(:rbenv_ruby) %>"
5
2
  pid_file "<%= fetch(:unicorn_pid) %>"
6
- start_command "<%= fetch(:rbenv_prefix) %> bundle exec unicorn -Dc <%= fetch(:unicorn_config_path) %> -E #{RAILS_ENV}"
3
+ start_command "<%= fetch(:rbenv_prefix) %> bundle exec unicorn -Dc <%= fetch(:unicorn_config_path) %> -E <%= fetch(:rails_env) %>"
7
4
  stdall "<%= fetch(:unicorn_log) %>"
8
5
 
9
6
  # stop signals:
@@ -1,19 +1,18 @@
1
- require 'eye-http'
2
-
3
- # Setups Eye global conf if not already
4
- Eye.config do
5
- logger '/var/log/eye-global.log'
6
- http :enable => true, :host => "0.0.0.0", :port => 12345
7
- end
8
-
9
1
  # Adding application
10
2
  Eye.application '<%= fetch(:application)%>' do
3
+ notify :<%= fetch(:eye_notification_contact) %>, :<%= fetch(:eye_notification_level) %>
4
+ notify :chat_room, :<%= fetch(:eye_notification_level) %>
5
+
6
+ load_env '<%= shared_path %>/.rbenv-vars'
7
+
8
+ env RBENV_ROOT: "<%= fetch(:rbenv_path) %>"
9
+ env RBENV_VERSION: "<%=fetch(:rbenv_ruby) %>"
10
+ env RAILS_ENV: "<%= fetch(:rails_env) %>"
11
11
 
12
12
  # All options inherits down to the config leafs.
13
13
  # except `env`, which merging down
14
-
15
- stdall '<%= shared_path %>/log/eye.log'
16
14
  working_dir '<%= current_path %>'
15
+ stdall '<%= shared_path %>/log/eye.log'
17
16
 
18
17
  trigger :flapping, times: 10, within: 1.minute, retry_in: 10.minutes
19
18
 
@@ -1,3 +1,3 @@
1
1
  module Negroku
2
- VERSION = '2.0.0.pre7'
2
+ VERSION = '2.0.0'
3
3
  end
data/negroku.gemspec CHANGED
@@ -21,17 +21,17 @@ spec = Gem::Specification.new do |s|
21
21
 
22
22
  s.add_runtime_dependency('rake', '~> 10.1')
23
23
  s.add_runtime_dependency('capistrano','~> 3.3.5')
24
- s.add_runtime_dependency('capistrano-rbenv', '~> 2.0.2')
24
+ s.add_runtime_dependency('capistrano-rbenv', '~> 2.0.3')
25
25
  s.add_runtime_dependency('capistrano-rails', '~> 1.1.2')
26
- s.add_runtime_dependency('capistrano-bundler', '~> 1.1.3')
26
+ s.add_runtime_dependency('capistrano-bundler', '~> 1.1.4')
27
27
  s.add_runtime_dependency('capistrano-npm', '~> 1.0.1')
28
28
  s.add_runtime_dependency('capistrano-nc', '~> 0.1.4')
29
29
 
30
30
  s.add_runtime_dependency('capistrano-nodenv', '~> 1.0.0')
31
- s.add_runtime_dependency('capistrano-bower', '~> 1.0.0')
31
+ s.add_runtime_dependency('capistrano-bower', '~> 1.1.0')
32
32
  s.add_runtime_dependency('capistrano3-nginx', '~> 2.0.4')
33
33
  s.add_runtime_dependency('capistrano3-unicorn', '~> 0.2.1')
34
- s.add_runtime_dependency('capistrano3-delayed-job', '~> 1.2.1')
34
+ s.add_runtime_dependency('capistrano3-delayed-job', '~> 1.3.0')
35
35
  s.add_runtime_dependency('whenever', '~> 0.9.4')
36
36
 
37
37
  s.add_runtime_dependency('gli','~> 2.12.2')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: negroku
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Ignacio Donoso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-27 00:00:00.000000000 Z
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ~>
88
88
  - !ruby/object:Gem::Version
89
- version: 2.0.2
89
+ version: 2.0.3
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: 2.0.2
96
+ version: 2.0.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: capistrano-rails
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 1.1.3
117
+ version: 1.1.4
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ~>
123
123
  - !ruby/object:Gem::Version
124
- version: 1.1.3
124
+ version: 1.1.4
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: capistrano-npm
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - ~>
172
172
  - !ruby/object:Gem::Version
173
- version: 1.0.0
173
+ version: 1.1.0
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ~>
179
179
  - !ruby/object:Gem::Version
180
- version: 1.0.0
180
+ version: 1.1.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: capistrano3-nginx
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - ~>
214
214
  - !ruby/object:Gem::Version
215
- version: 1.2.1
215
+ version: 1.3.0
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - ~>
221
221
  - !ruby/object:Gem::Version
222
- version: 1.2.1
222
+ version: 1.3.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: whenever
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -357,9 +357,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
357
357
  version: '0'
358
358
  required_rubygems_version: !ruby/object:Gem::Requirement
359
359
  requirements:
360
- - - '>'
360
+ - - '>='
361
361
  - !ruby/object:Gem::Version
362
- version: 1.3.1
362
+ version: '0'
363
363
  requirements: []
364
364
  rubyforge_project:
365
365
  rubygems_version: 2.0.14