画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

bitbucketとwerckerでhubotをherokuに自動deployしてslackに通知する

ここを参考にやる

wercker上での作業

1. ユーザ登録

https://app.wercker.com/sessions/new

ここからやる。 Sign upするとメールが送られてくるのでリンクをクリックすると、ログイン出来る。

2. アプリケーション登録

  • Add an applicationをクリックする
  • Choose a Git provideでBitbucketを選択して認証する
  • Select a repositoryでCIしたいリポジトリを選択
  • Configure accessでrecommendedされているAdd the deploy key to the selected repository for meを選択
  • Setup your wercker.ymlでファイル作って自分のリポジトリにpush
  • Awesome! you are all done!になるのでFinish!Make my app public

3. Settings→DEPLOY TARGETSでdeployの設定

  • Add deploy targetで追加
  • herokuを選ぶ
  • Deploy target nameはお好みで。 productionとかかな
  • Auto deployにチェックを入れる。ブランチはmaster
  • Herokuのapi keyとかdeployするHeroku app nameとか。英語を読めば簡単に登録出来る。

だいぶメモが雑になって来た

Bitbucket上での作業

  • さっき作成したwercker.ymlを追加するだけでいいはず。
  • これでmasterにMergeすると自動deployされる。。はず。
  • Deployの履歴は、werckerのDeploysで確認出来る。

雑なメモだ

ここまでやれば、masterにMergeされたりpushされると自動deployされる環境は整う。

Deployしたらslackに通知する

https://github.com/wantedly/step-pretty-slack-notify

これが便利そうなのでこれを使う

1. slack側の設定

  • IntegrationIncoming WebHooksを追加してWebhook URLを得る

2. wercker側の設定

  • SLACK_WEBHOOK_URLという環境変数を設定する
  • Settings→PIPELINE→Add new variableでSLACK_WEBHOOK_URLとslack側で取得したWebhook URLを設定する

3. wercker.ymlを変更する

以下のような感じにした。

hubotをdeployするだけなので、いろいろけずった。 もっと削れるのかな。この辺の書き方がよくわからなくて、何度も失敗した。

box: wercker/nodejs
build:
  steps:
    - script:
        name: echo hubot build
        code: |
          echo "hubot build"
  after-steps:
    - wantedly/pretty-slack-notify:
        webhook_url: $SLACK_WEBHOOK_URL
deploy:
  steps:
    - heroku-deploy
  after-steps:
    - wantedly/pretty-slack-notify:
        webhook_url: $SLACK_WEBHOOK_URL

所感

簡単にいろいろ出来て便利だったー