capper 0.6.8 → 0.7.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.
data/capper.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "capper"
5
- s.version = "0.6.8"
5
+ s.version = "0.7.0"
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.licenses = ["MIT"]
8
8
  s.authors = ["Benedikt Böhm"]
data/lib/capper/base.rb CHANGED
@@ -79,8 +79,16 @@ Capper.load do
79
79
  dirs += shared.map { |d| File.join(shared_path, d) }
80
80
  run "mkdir -p #{dirs.join(' ')}"
81
81
  end
82
+
83
+ desc "Create symlinks from shared to current"
84
+ task :symlink_shared, :roles => :app, :except => { :no_release => true } do
85
+ fetch(:symlinks, {}).each do |source, dest|
86
+ run "rm -rf #{release_path}/#{dest} && ln -nfs #{shared_path}/#{source} #{release_path}/#{dest}"
87
+ end
88
+ end
82
89
  end
83
90
 
84
91
  # cleanup by default
85
92
  after "deploy:update", "deploy:cleanup"
93
+ after "deploy:update_code", "deploy:symlink_shared"
86
94
  end
data/lib/capper/config.rb CHANGED
@@ -10,6 +10,7 @@ Capper.load do
10
10
  end
11
11
 
12
12
  namespace :config do
13
+ desc "Setup configuration files from config repo"
13
14
  task :setup, :roles => :app, :except => { :no_release => true } do
14
15
  unless config_repo.nil?
15
16
  run "cd #{config_path} && git pull -q"
@@ -18,10 +19,6 @@ Capper.load do
18
19
  fetch(:config_files, []).each do |f|
19
20
  run "cp #{config_path}/#{f} #{release_path}/config/"
20
21
  end
21
-
22
- fetch(:symlinks, {}).each do |source, dest|
23
- run "rm -rf #{release_path}/#{dest} && ln -nfs #{shared_path}/#{source} #{release_path}/#{dest}"
24
- end
25
22
  end
26
23
  end
27
24
 
@@ -1,9 +1,10 @@
1
1
  require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  require 'capper/bundler'
4
+ require 'capper/monit'
4
5
 
5
6
  Capper.load do
6
- # unicorn configuration variables
7
+ # configuration variables
7
8
  _cset(:delayed_job_workers, {})
8
9
 
9
10
  # these cannot be overriden
@@ -26,13 +27,19 @@ check process delayed_job_<%= name %>
26
27
  EOF
27
28
 
28
29
  namespace :delayed_job do
29
- desc "Generate delayed_job configuration files"
30
+ desc "Generate DelayedJob configuration files"
30
31
  task :setup, :except => { :no_release => true } do
31
32
  upload_template_file("delayed_job.sh",
32
33
  delayed_job_script,
33
34
  :mode => "0755")
34
35
  end
36
+
37
+ desc "Restart DelayedJob workers"
38
+ task :restart, :roles => :worker, :except => { :no_release => true } do
39
+ run "monit -g delayed_job restart all"
40
+ end
35
41
  end
36
42
 
37
43
  after "deploy:update_code", "delayed_job:setup"
44
+ after "deploy:restart", "delayed_job:restart"
38
45
  end
data/lib/capper/gem.rb CHANGED
@@ -2,6 +2,7 @@ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  Capper.load do
4
4
  namespace :gemrc do
5
+ desc "Setup global ~/.gemrc file"
5
6
  task :setup do
6
7
  put("gem: --no-ri --no-rdoc", "#{deploy_to}/.gemrc")
7
8
  end
data/lib/capper/monit.rb CHANGED
@@ -4,6 +4,7 @@ Capper.load do
4
4
  set(:monitrc) { "#{deploy_to}/.monitrc.local" }
5
5
 
6
6
  namespace :monit do
7
+ desc "Setup monit configuration files"
7
8
  task :setup do
8
9
  configs = fetch(:monit_configs, {})
9
10
 
@@ -17,6 +18,7 @@ Capper.load do
17
18
  end
18
19
  end
19
20
 
21
+ desc "Reload monit configuration"
20
22
  task :reload do
21
23
  run "monit reload &>/dev/null && sleep 1"
22
24
  end
@@ -0,0 +1,45 @@
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
+
3
+ require 'capper/bundler'
4
+ require 'capper/monit'
5
+
6
+ Capper.load do
7
+ # configuration variables
8
+ _cset(:resque_workers, {})
9
+
10
+ # these cannot be overriden
11
+ set(:resque_script) { File.join(bin_path, "resque") }
12
+
13
+ monit_config "resque", <<EOF, :roles => :worker
14
+ <% resque_workers.each do |name, queue| %>
15
+ check process resque_<%= name %>
16
+ with pidfile <%= pid_path %>/resque.<%= name %>.pid
17
+ <% if queue.nil? %>
18
+ start program = "<%= resque_script %> <%= name %> * start"
19
+ stop program = "<%= resque_script %> <%= name %> * stop"
20
+ <% else %>
21
+ start program = "<%= resque_script %> <%= name %> <%= queue %> start"
22
+ stop program = "<%= resque_script %> <%= name %> <%= queue %> stop"
23
+ <% end %>
24
+ group resque
25
+
26
+ <% end %>
27
+ EOF
28
+
29
+ namespace :resque do
30
+ desc "Generate resque configuration files"
31
+ task :setup, :except => { :no_release => true } do
32
+ upload_template_file("resque.sh",
33
+ resque_script,
34
+ :mode => "0755")
35
+ end
36
+
37
+ desc "Restart resque workers"
38
+ task :restart, :roles => :worker, :except => { :no_release => true } do
39
+ run "monit -g resque restart all"
40
+ end
41
+ end
42
+
43
+ after "deploy:update_code", "resque:setup"
44
+ after "deploy:restart", "resque:restart"
45
+ end
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ export HOME=<%= deploy_to %>
3
+ source <%= deploy_to %>/.rvm/scripts/rvm
4
+ export RAILS_ENV=<%= rails_env %>
5
+
6
+ WORKER="$1" && shift
7
+ QUEUE="$1" && shift
8
+
9
+ PIDFILE=<%= pid_path %>/resque.${WORKER}.pid
10
+ CMD="bundle exec rake environment resque:work QUEUE=${QUEUE} PIDFILE=${PIDFILE}"
11
+
12
+ cd <%= current_path %> >/dev/null
13
+
14
+ sig () {
15
+ test -s "$PIDFILE" && kill -$1 $(<$PIDFILE)
16
+ }
17
+
18
+ case $1 in
19
+ start)
20
+ sig 0 && echo >&2 "Already running" && exit 0
21
+ exec $CMD
22
+ ;;
23
+ stop)
24
+ sig TERM && exit 0
25
+ echo >&2 "Not running"
26
+ ;;
27
+ *)
28
+ echo >&2 "Usage: $0 <start|stop>"
29
+ exit 1
30
+ ;;
31
+ esac
@@ -23,7 +23,17 @@ check process unicorn
23
23
  stop program = "<%= unicorn_script %> stop"
24
24
  EOF
25
25
 
26
- namespace :deploy do
26
+ namespace :unicorn do
27
+ desc "Generate unicorn configuration files"
28
+ task :setup, :roles => :app, :except => { :no_release => true } do
29
+ upload_template_file("unicorn.rb",
30
+ unicorn_config,
31
+ :mode => "0644")
32
+ upload_template_file("unicorn.sh",
33
+ unicorn_script,
34
+ :mode => "0755")
35
+ end
36
+
27
37
  desc "Start unicorn"
28
38
  task :start, :roles => :app, :except => { :no_release => true } do
29
39
  run "#{unicorn_script} start"
@@ -38,18 +48,6 @@ EOF
38
48
  task :restart, :roles => :app, :except => { :no_release => true } do
39
49
  run "#{unicorn_script} upgrade"
40
50
  end
41
- end
42
-
43
- namespace :unicorn do
44
- desc "Generate unicorn configuration files"
45
- task :setup, :roles => :app, :except => { :no_release => true } do
46
- upload_template_file("unicorn.rb",
47
- unicorn_config,
48
- :mode => "0644")
49
- upload_template_file("unicorn.sh",
50
- unicorn_script,
51
- :mode => "0755")
52
- end
53
51
 
54
52
  desc "Kill unicorn (this should only be used if all else fails)"
55
53
  task :kill, :roles => :app, :except => { :no_release => true } do
@@ -73,4 +71,5 @@ EOF
73
71
  end
74
72
 
75
73
  after "deploy:update_code", "unicorn:setup"
74
+ after "deploy:restart", "unicorn:restart"
76
75
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: capper
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.8
5
+ version: 0.7.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - "Benedikt B\xC3\xB6hm"
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-29 00:00:00 +02:00
13
+ date: 2011-10-05 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -87,10 +87,12 @@ files:
87
87
  - lib/capper/monit.rb
88
88
  - lib/capper/multistage.rb
89
89
  - lib/capper/rails.rb
90
+ - lib/capper/resque.rb
90
91
  - lib/capper/rvm.rb
91
92
  - lib/capper/sass.rb
92
93
  - lib/capper/templates/delayed_job.sh.erb
93
94
  - lib/capper/templates/rails.console.sh.erb
95
+ - lib/capper/templates/resque.sh.erb
94
96
  - lib/capper/templates/unicorn.rb.erb
95
97
  - lib/capper/templates/unicorn.sh.erb
96
98
  - lib/capper/unicorn.rb