alpha_omega 0.0.133 → 0.0.134
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/alpha_omega/deploy.rb +29 -8
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.134
|
data/lib/alpha_omega/deploy.rb
CHANGED
@@ -64,6 +64,14 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
64
64
|
_cset(:real_revision) { source.local.query_revision(revision) { |cmd| with_env("LC_ALL", "C") { run_locally(cmd) } } }
|
65
65
|
|
66
66
|
_cset(:current_workarea) { capture("readlink #{current_path} || true").strip.split("/")[-1] }
|
67
|
+
_cset(:rollback_release_path) {
|
68
|
+
if releases.length > 0
|
69
|
+
w = current_workarea
|
70
|
+
releases.index(w) && releases[(releases.index(w))%releases.length]
|
71
|
+
else
|
72
|
+
""
|
73
|
+
end
|
74
|
+
}
|
67
75
|
_cset(:previous_release_path) {
|
68
76
|
if releases.length > 0
|
69
77
|
w = current_workarea
|
@@ -109,6 +117,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
109
117
|
_cset(:service_drop) { File.join(deploy_to, ".#{service_dir}.d") }
|
110
118
|
_cset(:log_path) { File.join(deploy_to, log_dir) }
|
111
119
|
|
120
|
+
_cset(:rollback_revision) { capture("cat #{rollback_release}/REVISION", :except => { :no_release => true }).chomp if rollback_release }
|
112
121
|
_cset(:previous_revision) { capture("cat #{previous_release}/REVISION", :except => { :no_release => true }).chomp if previous_release }
|
113
122
|
_cset(:current_revision) { capture("cat #{current_path}/REVISION", :except => { :no_release => true }).chomp }
|
114
123
|
_cset(:next_revision) { capture("cat #{next_release}/REVISION", :except => { :no_release => true }).chomp if next_release }
|
@@ -125,6 +134,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
125
134
|
# standalone case, or during deployment.
|
126
135
|
#
|
127
136
|
# with persistent releases, the latest release is always the current release
|
137
|
+
_cset(:rollback_release) { rollback_release_path }
|
128
138
|
_cset(:previous_release) { previous_release_path }
|
129
139
|
_cset(:current_release) { release_path }
|
130
140
|
_cset(:next_release) { next_release_path }
|
@@ -273,7 +283,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
273
283
|
|
274
284
|
task :symlink_next, :except => { :no_release => true } do
|
275
285
|
if releases.length >= 2
|
276
|
-
run "
|
286
|
+
run "ln -vsnf #{latest_release} #{next_path}"
|
277
287
|
end
|
278
288
|
end
|
279
289
|
|
@@ -289,9 +299,9 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
289
299
|
task :symlink, :except => { :no_release => true } do
|
290
300
|
if releases.length > 0
|
291
301
|
on_rollback do
|
292
|
-
if
|
293
|
-
run "
|
294
|
-
run "#{File.dirname(current_path).index(deploy_to) == 0 ? "" : try_sudo} ln -vsnf #{
|
302
|
+
if rollback_release
|
303
|
+
run "rm -fv #{previous_path} #{next_path}; true"
|
304
|
+
run "#{File.dirname(current_path).index(deploy_to) == 0 ? "" : try_sudo} ln -vsnf #{rollback_release} #{current_path}; true"
|
295
305
|
else
|
296
306
|
logger.important "no previous release to rollback to, rollback of symlink skipped"
|
297
307
|
end
|
@@ -300,9 +310,14 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
300
310
|
if releases.length == 1
|
301
311
|
run "[[ $(readlink #{current_path} 2>&-) = #{latest_release} ]] || #{try_sudo} ln -vsnf #{latest_release} #{current_path}"
|
302
312
|
else
|
303
|
-
run "
|
304
|
-
|
305
|
-
|
313
|
+
run "rm -fv #{previous_path} #{next_path}"
|
314
|
+
if current_path == "#{deploy_to}/current"
|
315
|
+
run "#{File.dirname(current_path).index(deploy_to) == 0 ? "" : try_sudo} ln -vsnf #{latest_release} #{current_path}"
|
316
|
+
else
|
317
|
+
run "ln -vsnf #{latest_release} #{deploy_to}/current"
|
318
|
+
run "#{File.dirname(current_path).index(deploy_to) == 0 ? "" : try_sudo} ln -vsnf #{deploy_to}/current #{current_path}"
|
319
|
+
end
|
320
|
+
run "ln -vsnf #{rollback_release} #{previous_path}"
|
306
321
|
end
|
307
322
|
|
308
323
|
system "#{figlet} -w 200 #{release_name} activated"
|
@@ -388,7 +403,13 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
388
403
|
if previous_release
|
389
404
|
system "#{figlet} -w 200 on #{previous_release}"
|
390
405
|
run "rm -fv #{previous_path} #{next_path}"
|
391
|
-
|
406
|
+
|
407
|
+
if current_path == "#{deploy_to}/current"
|
408
|
+
run "#{File.dirname(current_path).index(deploy_to) == 0 ? "" : try_sudo} ln -vsnf #{previous_release} #{current_path}"
|
409
|
+
else
|
410
|
+
run "ln -vsnf #{previous_release} #{deploy_to}/current"
|
411
|
+
run "#{File.dirname(current_path).index(deploy_to) == 0 ? "" : try_sudo} ln -vsnf #{deploy_to}/current #{current_path}"
|
412
|
+
end
|
392
413
|
else
|
393
414
|
abort "could not rollback the code because there is no prior release"
|
394
415
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alpha_omega
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 275
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 134
|
10
|
+
version: 0.0.134
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Nghiem
|