今までは@hrysd謹製のcapistrano-lingrを使ってましたがEYCに移ったのでenginyard gemのdeploy hookを使います。

deployディレクトリの下にフック名でrubyファイルを置くとそれが勝手に実行されるようになっています。

APP_ROOT/ 
   deploy/  
    before_bundle.rb  
    after_bundle.rb  
    before_compile_assets.rb  
    after_compile_assets.rb  
    before_migrate.rb  
    after_migrate.rb  
    before_symlink.rb  
    after_symlink.rb  
    before_restart.rb  
    after_restart.rb 

参照: Use Deploy Hooks : Engine Yard Developer Center

通知はいつでもいいのでafter_restartにしてみました。

# Gemfile:
gem 'lingman', github: 'hrysd/lingman'
# deploy/after_restart.rb
# encoding: utf-8
require 'rubygems'
require 'bundler/setup'
require 'lingman'

Lingman::Updater.update(
  "fjord_assistant", # BOT ID
  "takoroom", # ROOM ID
  "XXXXXXXXXXXXX", # SECRET
  "#{app} を #{environment_name} にデプロイしました。"
)

deployスクリプトはPlain old ruby fileなのでrequire 'bundler/setup'でbundleしたgemにパスを通してもらいます。

Lingrへの通知にはこれまた@hrysdのlingmanを使わせてもらいました。Lingr APIを網羅してないのでまだgemにしたくないようですが、githubから読み込んで使います。

これでイチイチ「怖話、本番環境にデプロイしましたー」とチャットに報告しなくてよくなりました。

Comments


Option