Created
April 2, 2011 16:16
-
-
Save rtekie/899611 to your computer and use it in GitHub Desktop.
Capistrano deployment email notifier for Rails 3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=begin | |
Capistrano deployment email notifier for Rails 3 | |
Do you need to send email notifications after application deployments? | |
Christopher Sexton developed a Simple Capistrano email notifier for rails. You can find details at http://www.codeography.com/2010/03/24/simple-capistrano-email-notifier-for-rails.html. | |
Here is Rails 3 port of the notifier. | |
The notifier sends an email after application deployment has been completed. | |
How to use it? | |
1. Add this file to config/deploy folder. | |
2. Update the file with your google credentials and from email address. | |
3. Add the following content to config/deploy.rb. | |
require 'config/deploy/cap_notify.rb' | |
# add email addresses for people who should receive deployment notifications | |
set :notify_emails, ["[email protected]", "[email protected]"] | |
after :deploy, 'deploy:send_notification' | |
# Create task to send a notification | |
namespace :deploy do | |
desc "Send email notification" | |
task :send_notification do | |
Notifier.deploy_notification(self).deliver | |
end | |
end | |
4. Update deploy.rb with destination email addresses for the notifications. | |
5. To test run this command: | |
cap deploy:send_notification | |
=end | |
require "action_mailer" | |
ActionMailer::Base.delivery_method = :smtp | |
ActionMailer::Base.smtp_settings = { | |
:enable_starttls_auto => true, | |
:tls => true, | |
:address => "smtp.gmail.com", | |
:port => 587, | |
:domain => "gmail.com", | |
:authentication => "plain", | |
:user_name => "YOUR USER NAME", | |
:password => "YOUR PASSWORD" | |
} | |
class Notifier < ActionMailer::Base | |
default :from => "YOUR FROM EMAIL" | |
def deploy_notification(cap_vars) | |
now = Time.now | |
msg = "Performed a deploy operation on #{now.strftime("%m/%d/%Y")} at #{now.strftime("%I:%M %p")} to #{cap_vars.host}" | |
mail(:to => cap_vars.notify_emails, | |
:subject => "Deployed #{cap_vars.application} to #{cap_vars.stage}") do |format| | |
format.text { render :text => msg} | |
format.html { render :text => "<p>" + msg + "<\p>"} | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment