caploy 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -73,18 +73,26 @@ Capistrano::Configuration.instance.load do
73
73
  ["deployed", "master", current, latest] : \
74
74
  ["previous", "deployed", previous, current]
75
75
 
76
+ # Fetch the difference between master and deployed revisions.
77
+ log_cmd = "#{source.log(previous, latest).gsub(/^git/, 'git --no-pager')} --oneline"
78
+ cfg = File.join(shared_path, strategy.configuration[:repository_cache] || "cached-copy")
79
+
80
+ diff = ''
81
+ run %Q{cd "#{cfg}" && #{log_cmd}} do |channel, stream, data|
82
+ diff = data
83
+ end
84
+
76
85
  # Show difference between master and deployed revisions.
77
- if (diff = `git log #{base_rev}..#{new_rev} --oneline`) != ""
86
+ if diff != ""
78
87
  # Colorize refs
79
88
  diff.gsub!(/^([a-f0-9]+) /, "\033[1;32m\\1\033[0m - ")
80
89
  diff = " " << diff.gsub("\n", "\n ") << "\n"
81
90
  # Indent commit messages nicely, max 80 chars per line, line has to end with space.
82
- diff = diff.split("\n").map { |l| l.scan(/.{1,120}/).join("\n"<<" "*14).gsub(/([^ ]*)\n {14}/m, "\n"<<" "*14<<"\\1") }.join("\n")
91
+ diff = diff.split("\n").map { |l| l.scan(/.{1,80}/).join("\n"<<" "*14).gsub(/([^ ]*)\n {14}/m, "\n"<<" "*14<<"\\1") }.join("\n")
83
92
  puts "=== Difference between #{base_label} revision and #{new_label} revision:\n\n"
84
93
  puts diff
85
94
  end
86
95
  end
87
-
88
96
  after "deploy", "revisions"
89
97
  after "deploy:migrations", "revisions"
90
98
  end
@@ -15,14 +15,18 @@ before_fork do |server, worker|
15
15
  ActiveRecord::Base.connection.disconnect!
16
16
  end
17
17
 
18
- # Quit the old unicorn process
18
+ # This allows a new master process to incrementally
19
+ # phase out the old master process with SIGTTOU to avoid a
20
+ # thundering herd (especially in the "preload_app false" case)
21
+ # when doing a transparent upgrade. The last worker spawned
22
+ # will then kill off the old master process with a SIGQUIT.
19
23
  old_pid = "#{server.config[:pid]}.oldbin"
20
- if File.exists?(old_pid) && server.pid != old_pid
21
- begin
22
- Process.kill("QUIT", File.read(old_pid).to_i)
23
- rescue Errno::ENOENT, Errno::ESRCH
24
- # someone else did our job for us
25
- end
24
+ if File.exists?(old_pid) && old_pid != server.pid
25
+ begin
26
+ sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
27
+ Process.kill(sig, File.read(old_pid).to_i)
28
+ rescue Errno::ENOENT, Errno::ESRCH
29
+ end
26
30
  end
27
31
  end
28
32
 
@@ -1,3 +1,3 @@
1
1
  module Caploy
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,167 +1,154 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: caploy
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.3
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 4
9
+ version: 0.1.4
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Michael Schiller
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2012-11-13 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
16
+
17
+ date: 2012-12-19 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: gemcutter
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: capistrano
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: 2.12.0
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
38
30
  type: :runtime
31
+ version_requirements: *id001
32
+ - !ruby/object:Gem::Dependency
33
+ name: capistrano
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
35
+ requirement: &id002 !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ segments:
40
+ - 2
41
+ - 12
42
+ - 0
45
43
  version: 2.12.0
46
- - !ruby/object:Gem::Dependency
47
- name: capistrano-ext
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: 1.2.1
54
44
  type: :runtime
45
+ version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: capistrano-ext
55
48
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
49
+ requirement: &id003 !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ segments:
54
+ - 1
55
+ - 2
56
+ - 1
61
57
  version: 1.2.1
62
- - !ruby/object:Gem::Dependency
63
- name: capistrano_colors
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: 0.5.5
70
58
  type: :runtime
59
+ version_requirements: *id003
60
+ - !ruby/object:Gem::Dependency
61
+ name: capistrano_colors
71
62
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
63
+ requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
69
+ - 5
70
+ - 5
77
71
  version: 0.5.5
78
- - !ruby/object:Gem::Dependency
79
- name: capistrano-unicorn
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: 0.1.6
86
72
  type: :runtime
73
+ version_requirements: *id004
74
+ - !ruby/object:Gem::Dependency
75
+ name: capistrano-unicorn
87
76
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
77
+ requirement: &id005 !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
83
+ - 1
84
+ - 6
93
85
  version: 0.1.6
94
- - !ruby/object:Gem::Dependency
95
- name: capistrano-file_db
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: 0.1.0
102
86
  type: :runtime
87
+ version_requirements: *id005
88
+ - !ruby/object:Gem::Dependency
89
+ name: capistrano-file_db
103
90
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
91
+ requirement: &id006 !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ segments:
96
+ - 0
97
+ - 1
98
+ - 0
109
99
  version: 0.1.0
110
- - !ruby/object:Gem::Dependency
111
- name: capistrano-uptodate
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: 0.0.2
118
100
  type: :runtime
101
+ version_requirements: *id006
102
+ - !ruby/object:Gem::Dependency
103
+ name: capistrano-uptodate
119
104
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
105
+ requirement: &id007 !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ segments:
110
+ - 0
111
+ - 0
112
+ - 2
125
113
  version: 0.0.2
126
- - !ruby/object:Gem::Dependency
127
- name: rvm-capistrano
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: 1.2.2
134
114
  type: :runtime
115
+ version_requirements: *id007
116
+ - !ruby/object:Gem::Dependency
117
+ name: rvm-capistrano
135
118
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
119
+ requirement: &id008 !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ segments:
124
+ - 1
125
+ - 2
126
+ - 2
141
127
  version: 1.2.2
142
- - !ruby/object:Gem::Dependency
143
- name: erubis
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
128
  type: :runtime
129
+ version_requirements: *id008
130
+ - !ruby/object:Gem::Dependency
131
+ name: erubis
151
132
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
133
+ requirement: &id009 !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ segments:
138
+ - 0
139
+ version: "0"
140
+ type: :runtime
141
+ version_requirements: *id009
158
142
  description: capistrano deployment task for my projects
159
- email:
143
+ email:
160
144
  - michael.schiller@gmx.de
161
145
  executables: []
146
+
162
147
  extensions: []
148
+
163
149
  extra_rdoc_files: []
164
- files:
150
+
151
+ files:
165
152
  - .gitignore
166
153
  - Gemfile
167
154
  - README.md
@@ -198,29 +185,35 @@ files:
198
185
  - lib/examples/deploy.rb
199
186
  - lib/mysql.rb
200
187
  - lib/util.rb
188
+ has_rdoc: true
201
189
  homepage: https://github.com/mschiller/caploy
202
190
  licenses: []
191
+
203
192
  post_install_message:
204
193
  rdoc_options: []
205
- require_paths:
194
+
195
+ require_paths:
206
196
  - lib
207
- required_ruby_version: !ruby/object:Gem::Requirement
208
- none: false
209
- requirements:
210
- - - ! '>='
211
- - !ruby/object:Gem::Version
212
- version: '0'
213
- required_rubygems_version: !ruby/object:Gem::Requirement
214
- none: false
215
- requirements:
216
- - - ! '>='
217
- - !ruby/object:Gem::Version
218
- version: '0'
197
+ required_ruby_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ segments:
202
+ - 0
203
+ version: "0"
204
+ required_rubygems_version: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ segments:
209
+ - 0
210
+ version: "0"
219
211
  requirements: []
212
+
220
213
  rubyforge_project:
221
- rubygems_version: 1.8.24
214
+ rubygems_version: 1.3.6
222
215
  signing_key:
223
216
  specification_version: 3
224
217
  summary: capistrano deployment task for my projects
225
218
  test_files: []
226
- has_rdoc:
219
+