6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/projectlocker_errata/capistrano.rb', line 6
def self.load_into(configuration)
configuration.load do
after "deploy", "projectlocker_errata:deploy"
after "deploy:migrations", "projectlocker_errata:deploy"
namespace :projectlocker_errata do
desc <<-DESC
Notify ProjectlockerErrata of the deployment by running the notification on the REMOTE machine.
- Run remotely so we use remote API keys, environment, etc.
DESC
task :deploy, :except => { :no_release => true } do
rails_env = fetch(:rails_env, "production")
projectlocker_errata_env = fetch(:projectlocker_errata_env, fetch(:rails_env, "production"))
local_user = ENV['USER'] || ENV['USERNAME']
executable = RUBY_PLATFORM.downcase.include?('mswin') ? fetch(:rake, 'rake.bat') : fetch(:rake, 'rake')
directory = configuration.current_release
notify_command = "cd #{directory}; #{executable} RAILS_ENV=#{rails_env} projectlocker_errata:deploy TO=#{projectlocker_errata_env} REVISION=#{current_revision} REPO=#{repository} USER=#{local_user}"
notify_command << " DRY_RUN=true" if dry_run
notify_command << " API_KEY=#{ENV['API_KEY']}" if ENV['API_KEY']
logger.info "Notifying ProjectlockerErrata of Deploy (#{notify_command})"
if configuration.dry_run
logger.info "DRY RUN: Notification not actually run."
else
result = ""
run(notify_command, :once => true) { |ch, stream, data| result << data }
end
logger.info "ProjectlockerErrata Notification Complete."
end
end
end
end
|