LoginSignup
10
11

More than 5 years have passed since last update.

capistranoでのデプロイ失敗時にhipchatに通知する

Last updated at Posted at 2014-07-18

以下の拡張です。
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 環境 ;(


参考

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11