caploy 0.1.3 → 0.1.4

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.
@@ -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
+