2017/06/22

Jenkins でビルドの情報を Slack に投稿する

Jenkins ネタでもう一つ。
ビルドの開始や失敗、成功を Slack に流したくなったのでそのログ。


環境

  • CentOS Linux release 7.0.1406 (Core)
  • Docker version 1.12.6, build 1398f24/1.12.6
  • Jenkins ver. 2.46.3
  • Slack Notification Plugin 2.2


構築方法(Slack)

  • Slack 側の Add Integration で Jenkins を指定
  • 通知させたいチャンネル名を指定
  • 発行された token をコピーしておく


構築方法(Jenkins)

  • Manage Jenkins > Plugin Management > Available
    • Slack Notification Plugin をチェック
    • install without restart 
  • Manage Jenkins > Plugin Management
    • team subdomain: 通知したい Slack の subdomain
    • 例えば hoge.slack.com なら hoge
    • Integration Token は先程コピーした  token で
    • Channel は通知したいチャンネル
    • Is Bot User ? にはチェックを入れない
  • Test Connection できちんと Slack にポストされていれば設定はOKです


構築方法(Jenkins Project)

  • 通知させたい Project の Configure を開く
  • Post-build Actions
    • に Slack Notifications を追加
    • 通知させたいイベントにチェックを入れる
  • Project > serval > Post-build Actions > Advanced
    • は特別設定しなければ先程のグローバル設定が使われるので空白で良いです
    • 私は Notification message includes を commit list with authors only に設定しました


まとめ

この設定をすることで  Jenkins がビルドした時に Slack へ通知が行なわれます。
今回面倒だったこととしては、 Is Bot User? にチェックを入れていた時、Test Connection ではきちんと通知がされるのに、ビルドした時だけは通知がされないという絶妙な状態になることがありました。どうしてチェックを入れたらダメなのだろ。


参考

0 件のコメント:

コメントを投稿