今までは@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から読み込んで使います。
これでイチイチ「怖話、本番環境にデプロイしましたー」とチャットに報告しなくてよくなりました。