O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

3.726 visualizações

Publicada em

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

Publicada em: Internet
  • Sex in your area is here: ❶❶❶ http://bit.ly/369VOVb ❶❶❶
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/369VOVb ♥♥♥
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Seja a primeira pessoa a gostar disto

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ってやっぱり大事!!

×