WerckerのBuild結果をSlackに通知する

Posted by Tatsuyano on Fri, Mar 13, 2015
In
Tags ruby, rails, ci, wercker, slack

Werckerに登録したアプリケーションのBuild結果をSlackのwebHookという機能を使うことで、Slackに通知することができるようになります。

SlackにWebHookを追加する

  1. サイドメニューの Configure Integrations を押下してください。

  2. Incoming WebHooksを追加してください。

  3. どのチャンネルに追加するか選択してください。

  4. URLをコピーし、Save Settingsを押下します。

WerckerにSlackのTOKENを設定する

先ほどコピーしたURLの一番後ろについているパラーメータがSLACK_TOKENになります。

https://hooks.slack.com/services/aaaaa/bbbbb/[SLACK-TOKEN]

SLACK_TOKENProtectedにチェックした状態でSAVEしてください。Protectedをチェックすると、ログ上で値が非表示になります。

wercker.ymlにafter-stepsを追加

Build後(build: after-steps)に、Slackに通知するようwercker.ymlを設定します。subdomainはSlackのURLhttp://hoge.slack.comhogeの部分にあたります。

box: wercker/ruby
 services:
     - wercker/postgresql
 build:
     steps:
       - bundle-install
       - rails-database-yml:
           service: postgresql
       - script:
           name: echo ruby information
           code: |
               echo “ruby version $(ruby –version) running!”
               echo “from location $(which ruby)”
               echo -p “gem list: $(gem list)”
       - script:
           name: Set up db
           code: RAILS_ENV=test bundle exec rake db:schema:load
       - script:
           name: Run RSpec
           code: bundle exec rspec
     # ここから追加 ——————————
     after-steps:
       - sherzberg/slack-notify:
           subdomain: hoge
           token: $SLACK_TOKEN
           channel: “#general”
           username: wercker
           icon_url: https://avatars3.githubusercontent.com/u/1695193?s=140
     # ここまで————————————
 deploy:
     steps:
         - heroku-deploy:
             install-toolbelt: true
         - script:
             name: Update database
             code: heroku run rake db:migrate –app $APP_NAME
         - script:
             name: Update assets
             code: heroku run rake add_static_assets –app $APP_NAME

wercker.yml を更新したのでgit pushしてください。 正しく設定できれていれば、下記のようなメッセージがSlackに通知されます。

参考サイト