Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Circle ciで結果をslackに通知してみる

2,157 views

Published on

2017.2.9 CI/CD Nightの発表資料です。
https://teamspirit.connpass.com/event/49323/

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Circle ciで結果をslackに通知してみる

  1. 1. CircleCIで 結果をSlackに 通知してみる 2017.2.9 CI/CD Night
  2. 2. 自己紹介 中平 祐介 株式会社チームスピリット サーバサイドの開発が中心 CI関係はほとんど触ったことがないです https://github.com/yNakahira
  3. 3. 弊社の開発
  4. 4. 開発者 レビュアー • チケットベースで開発 • レビュアーにPRでレビュー依頼 レビューお願いします
  5. 5. 開発者 レビュアー (lintエラー出てるじゃん・・)) レビューお願いします
  6. 6. 最近の悩み • レビュー時にLintエラーが見つかる • 差し戻しが発生し時間がかかる • そういったやり取りはなくしたい
  7. 7. レビュアーが確認するときに Lintエラーが発生していないか 一目でわかる方法はないか?
  8. 8. CircleCIを使ってみる • Github・bitbucket連携ができ、CIを実行でき るサービス • 1コンテナ無料(月1500分までが無料枠) • Slack連携もある
  9. 9. セットアップ • https://circleci.comを開く
  10. 10. セットアップ • 「Add Project」から対象のリポジトリを選択
  11. 11. これでリポジトリとの 連携設定は完了
  12. 12. セットアップ • circle.ymlの準備 • circle.ymlとは? • CircleCIでどんなテスト・環境を準備するかを記述 するファイル(YAML形式) • テスト以外にもデプロイとかも記述できる • リポジトリのルート直下に配置する必要がある
  13. 13. circle.yml
  14. 14. circle.yml 起動時のコマンドを記載 テスト時のコマンドを記載 テスト後のコマンドを記載
  15. 15. package.json • 今回はESLintの結果をHTMLで出力するために、 eslint-html-reporterをインストール
  16. 16. Pushしてみる • 成功時 • 失敗時 結果がレポート出力
  17. 17. レポート出力結果
  18. 18. PRにも通知される
  19. 19. Slackとの連携 参考 http://qiita.com/su- kun1899/items/640f6fa8b48749396c16 • 10分もあれば設定可能です • Slackへの通知はFailed/Fixedのときのみを設定しました
  20. 20. まとめ • レビュアーもlintエラーが発生しているか一目で分かる ようになった • Slackにも通知されるため、レビューイも修正に早く 着手できる • circle.ymlのジョブ設定に慣れるまではTry&Error でやっていたが、CircleCIのProject Settings > Test Commandsからジョブ実行できる(らしいが試 していない) 参考:http://in.fablic.co.jp/entry/circleci-tips
  21. 21. これで当初の目的は 達成できたが・・
  22. 22. もう少しやってみる • Lintエラーを直接PRにコメントしてくれる便利なパッケージ (saddler)があったので使ってみる 参考:https://github.com/packsaddle/ruby-saddler http://qiita.com/noboru_i/items/2f30296db1c8a6dfbd9b ※今回はEslintに対応する形式で.shを書き換えました。 完全に手柄の横取りです。
  23. 23. run-eslint.sh
  24. 24. run-eslint.sh 必要となるモジュールをインストール Masterブランチとの差分を取得し、 差分に対してeslintを実行する。 SaddlerがGithubのPRにlint結果を自動でコメント
  25. 25. circle.yml shを実行する権限を付与し、shを実行
  26. 26. CircleCIに環境設定を行う • GitHubの“Personal Access Tokens”でCircleCIからコメ ントするために必要となるトークンを作成 • 対象プロジェクトの設定画面より、"Environment variables"を選択、下記を設定する。 • Name: GITHUB_ACCESS_TOKEN • Value: 上で作成したトークン
  27. 27. Pushしてみる Lintエラーを直接コメントしてくれる
  28. 28. 今度こそまとめ • PRに直接コメントされるので、CI環境をいちいち確認 しなくてもよくなった • レビュアーが本質的なレビューに専念できる(たぶ ん) • PRにコメントされるし、Slack連携いらないかも・・ • CIってやっぱり大事!!

×