alpha_omega 0.0.11 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/recipes/alpha_omega/deploy.rb +54 -14
- data/recipes/alpha_omega/version.rb +1 -1
- metadata +3 -3
data/Gemfile.lock
CHANGED
@@ -84,6 +84,11 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
84
84
|
# with persistent releases, the latest release is always the current release
|
85
85
|
_cset(:latest_release) { current_release }
|
86
86
|
|
87
|
+
# =========================================================================
|
88
|
+
# deploy:lock defaults
|
89
|
+
# =========================================================================
|
90
|
+
_cset(:lock_timeout) { 300 }
|
91
|
+
|
87
92
|
# =========================================================================
|
88
93
|
# These are helper methods that will be available to your recipes.
|
89
94
|
# =========================================================================
|
@@ -236,7 +241,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
236
241
|
end
|
237
242
|
|
238
243
|
if releases.length == 1
|
239
|
-
sudo
|
244
|
+
run "[[ $(readlink #{current_path} 2>&-) = #{latest_release} ]] || sudo ln -snf #{latest_release} #{current_path}"
|
240
245
|
else
|
241
246
|
run "ln -snf #{latest_release} #{current_path}"
|
242
247
|
end
|
@@ -414,23 +419,58 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
|
|
414
419
|
end
|
415
420
|
end
|
416
421
|
|
417
|
-
|
422
|
+
task :lock do
|
423
|
+
epoch = Time.now.to_i
|
424
|
+
locker = ''
|
425
|
+
|
426
|
+
run "cat #{deploy_to}/log/.#{application}_deploy_lock 2>&- || true" do |ch, stream, data|
|
427
|
+
locker << data
|
428
|
+
end
|
429
|
+
|
430
|
+
if !locker.empty?
|
431
|
+
lock_epoch = locker.split[0].to_i
|
432
|
+
lock_user = locker.split[1]
|
433
|
+
|
434
|
+
lock_elasped = epoch-lock_epoch
|
435
|
+
|
436
|
+
if lock_elasped < lock_timeout
|
437
|
+
puts "deploy in progress by #{lock_user} #{epoch-lock_epoch} seconds ago"
|
438
|
+
abort
|
439
|
+
elsif
|
440
|
+
puts "Found a chef lock by #{lock_user} #{epoch-lock_epoch} seconds ago: too old, deleting and ignoring"
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
444
|
+
run_script = <<-SCRIPT
|
445
|
+
echo #{epoch} #{ENV['USER']} > #{deploy_to}/log/.#{application}_deploy_lock;
|
446
|
+
SCRIPT
|
447
|
+
|
448
|
+
at_exit { self.unlock; }
|
449
|
+
|
450
|
+
run run_script.gsub(/[\n\r]+[ \t]+/, " ")
|
451
|
+
end
|
452
|
+
|
453
|
+
task :unlock do
|
454
|
+
run "rm -f #{deploy_to}/log/.#{application}_deploy_lock"
|
455
|
+
end
|
456
|
+
|
457
|
+
end # :deploy
|
418
458
|
|
419
459
|
on :exit do
|
420
460
|
put full_log, "#{deploy_to}/log/#{application}_last_deploy.log-#{Time.now.strftime('%Y%m%d-%H%M')}"
|
421
461
|
end
|
422
462
|
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
run run_script
|
463
|
+
namespace :ruby do
|
464
|
+
task :bundle do
|
465
|
+
run_script = <<-SCRIPT
|
466
|
+
set -e; cd #{release_path};
|
467
|
+
[[ -f #{ruby_env} ]] && . #{ruby_env};
|
468
|
+
[[ -f #{ruby_rvm} ]] && { set +e; source #{ruby_rvm}; set -e; };
|
469
|
+
bundle check || bundle install --deployment --quiet --local --without development test || bundle check;
|
470
|
+
SCRIPT
|
471
|
+
run run_script.gsub(/[\n\r]+[ \t]+/, " ")
|
472
|
+
end
|
434
473
|
end
|
435
|
-
|
474
|
+
|
475
|
+
end # Capistrano::Configuration
|
436
476
|
|
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: 63
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 16
|
10
|
+
version: 0.0.16
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Nghiem
|