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 +4 -4
- data/lib/negroku/cli.rb +1 -1
- data/lib/negroku/deploy.rb +2 -0
- data/lib/negroku/helpers/watch.rb +4 -4
- data/lib/negroku/tasks/delayed_job.rake +2 -0
- data/lib/negroku/tasks/eye/delayed_job.rake +41 -13
- data/lib/negroku/tasks/eye/unicorn.rake +7 -1
- data/lib/negroku/tasks/eye.rake +12 -16
- data/lib/negroku/tasks/unicorn.rake +1 -1
- data/lib/negroku/templates/negroku/stage.rb.erb +5 -0
- data/lib/negroku/templates/tasks/eye/_delayed_job.erb +14 -21
- data/lib/negroku/templates/tasks/eye/_unicorn.erb +1 -4
- data/lib/negroku/templates/tasks/eye/application.eye.erb +9 -10
- data/lib/negroku/version.rb +1 -1
- data/negroku.gemspec +4 -4
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24cc285eb9ad2b4813daa33d542768b9d5b847d0
|
4
|
+
data.tar.gz: 7d75f4b9772ef0e518da35a78123fa87ff1a07ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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'
|
data/lib/negroku/deploy.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
def watch_process(name,
|
1
|
+
def watch_process(name, options = {})
|
2
2
|
processes = fetch(:eye_watched_processes, {})
|
3
3
|
|
4
|
-
|
5
|
-
|
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
|
@@ -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
|
-
|
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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
#
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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
|
-
|
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
|
data/lib/negroku/tasks/eye.rake
CHANGED
@@ -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
|
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
|
47
|
-
|
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
|
-
|
77
|
+
before "deploy:published", "negroku:eye:setup"
|
82
78
|
after "negroku:eye:setup", "eye:load"
|
83
79
|
|
84
80
|
define_logs(:eye, {
|
@@ -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
|
-
|
1
|
+
group 'delayed-jobs' do
|
2
|
+
chain grace: 10.seconds
|
2
3
|
|
3
|
-
|
4
|
+
start_timeout 20.seconds
|
5
|
+
stop_timeout 20.seconds
|
6
|
+
restart_timeout 20.seconds
|
4
7
|
|
5
|
-
workers_count =
|
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
|
-
|
12
|
-
working_dir cwd
|
13
|
-
stop_on_delete true
|
10
|
+
(0 ... workers_count.to_i).each do |i|
|
14
11
|
|
15
|
-
|
16
|
-
|
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
|
-
|
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
|
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
|
|
data/lib/negroku/version.rb
CHANGED
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.
|
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.
|
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.
|
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.
|
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
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
362
|
+
version: '0'
|
363
363
|
requirements: []
|
364
364
|
rubyforge_project:
|
365
365
|
rubygems_version: 2.0.14
|