イケてるエンジニアなら、capistranoでデプロイしたらHipChatに通知するなんてことをやっていると思います。
ただ、会社でChatWorkは使ってるけど、HipChatつかってないって人もいるじゃないんでしょうか?
HipChatが無いならChatWorkに通知すればいいじゃないとググってみたらありました。
まあREADMEみればわかると思いますが、軽く導入方法を説明しておきます。
1. Capistrano用のディレクトリを作成
適当に作業用のディレクトリを作成します。
今回はcwtest
って名前のディレクトリを作成します。
$ mkdir -p ~/capistrano/cwtest
$ cd ~/capistrano/cwtest
2. Gemfileを作成
以下のような中身を作成しておきます。
source "https://rubygems.org"$
gem 'capistrano', '~> 3.1'$
gem 'capistrano-chatwork'$
あとはbundle install
を実行しましょう。
3. Capistranoの設定を行う
まずはCapistranoのファイルを用意する
$ bundle ex cap install
Capfileに以下のように記述
# Load DSL and Setup Up Stages
require 'capistrano/setup'
# Includes default deployment tasks
require 'capistrano/deploy'
# ChatWork
require 'capistrano-chatwork'
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
あとはconfig/deploy.rbにChatWork APIの情報を記述します。
lock '3.2.1'
set :application, 'testapp'
set :repo_url, 'git@github.com:polidog/symfony2bss.git'
set :deploy_to, '/var/www/vhost/test'
## ChatWork
set :chatwork_api_token, 'APIキーを入力'
set :chatwork_room_id, 'ルームID'
4. デプロイを行ってChatWorkへ通知を行う
$ bundle ex cap production deploy
これでChatWorkに以下のように通知がくると思います。
通知メッセージカスタマイズする
デフォルトのメッセージだと味気ないのでメッセージ内容をちょっと変えましょう。
config/deploy.rb
のなかで以下の設定をします。
lock '3.2.1'
set :application, 'testapp'
set :repo_url, 'git@github.com:polidog/symfony2bss.git'
set :deploy_to, '/var/www/vhost/test'
## ChatWork
set :chatwork_api_token, 'APIキーを入力'
set :chatwork_room_id, 'ルームID'
++ set :chatwork_deploy_started_message, "[#{rails_env}]へデプロイを開始します。ブランチ:#{deployment_name}, ユーザ(#{user}) :):):):)"
++ set :chatwork_deploy_finished_message, "[#{rails_env}]へのデプロイが完了しました。ブランチ(#{deployment_name}), ユーザ(#{user}) (beer)(beer)(beer)(beer)"
++ set :chatwork_deploy_failed_message, "[#{rails_env}]へのデプロイが失敗しました。 ブランチ(#{deployment_name}), ユーザ(#{user}) (devil)(devil)(devil)(devil)"
絵文字も使えるのでちょっと楽しいですね!
メッセージで使用可能なメソッド
メソッド名 | 説明 |
---|---|
user | gitの設定ファイル、または環境変数からユーザー名を取得する |
deployment_name | ブランチ名または、application変数から取得する |
rails_env | rails_env変数から値を取得する |
こんな感じですかね。。間違ってたらごめんなさい。
最後に
非常に簡単にChatWorkへの通知ができるのでぜひ興味があるかたは使ってみてださい!