以下の拡張です。
capistranoデプロイ時に、新しくリリースされるgitのコミットログをHipChatに通知
capistrano 3.1.0からdeploy:failed
というデプロイ失敗を検知するhookが追加されたので、それを利用してデプロイ失敗時にhipchatへ通知するようにしましょう。
変更箇所
config/deploy.rb
にデプロイ失敗時のhookを追加
config/deploy.rb
after 'deploy:failed', 'hipchat:update:fail'
lib/capistrano/hipchat.cap
にデプロイ失敗時の処理を記述
lib/capistrano/hipchat.cap
require 'hipchat'
HIPCHAT_TOKEN = 'YOUR_HIPCHAT_TOKEN'
ROOM_NAME = 'ROOM_NAME_TO_NOTIFY'
client = HipChat::Client.new(HIPCHAT_TOKEN)[ROOM_NAME]
namespace :hipchat do
namespace :update do
desc 'Notify when failed to deploy'
task :fail do
run_locally do
client.send('Deploy',
"#{deploy_user} FAILED to deploy #{fetch(:application)} to #{fetch(:rails_env)} ;(",
{ color: 'red', notify: true }
)
end
end
end
end
def deploy_user
`git config user.name`.strip || ENV['USER']
end
するとhipchatには以下のように通知されます。
bob FAILED to deploy アプリ名 to 環境 ;(
参考