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.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
DangerでPull Request
レビューの指摘事項
を減らす
AKIBA.swift スーパー勉強会
April 17, 2017
前田隼輔
...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 前田隼輔
⁃ 所属
• DeNA システム本部 SWETグループ テスト基盤チーム
⁃ 経歴
• 3月に DeNA SWETグループ に...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Pull Requestでこんなことありませんか?
3
ソースコード
いじってるけど
ビルドは通った?
masterブランチ
にはマージしないで
くだ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
そこで
4
http://danger.systems/
https://github.com/danger/danger
Copyright © DeNA Co.,Ltd. All Rights Reserved.
5
🚫 Stop saying “you forgot to …”
in code review
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
 Dangerとは
 Dangerでできること
 SWET テスト基盤チームでの事例
6
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
 Dangerとは
 Dangerでできること
 SWET テスト基盤チームでの事例
7
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerとは
 Pull Request時の確認事項を自動化できるツール
 Dangerfile を作成し、その中で自由にチェックできる
 ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerとは
 Pull Request時の確認事項を自動化できるツール
 Dangerfile を作成し、その中で自由にチェックできる
 ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerとは
10
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
 Dangerとは
 Dangerでできること
 SWET テスト基盤チームでの事例
11
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerでできること
 Dangerfile では Ruby構文 が使える
 ホスティングサービスへの通知のためのDSL
⁃ message ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerでできること
 Dangerfile では Ruby構文 が使える
 ホスティングサービスへの通知のためのDSL
⁃ message ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerでできること
 Dangerfile では Ruby構文 が使える
 ホスティングサービスへの通知のためのDSL
⁃ message ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
 Dangerとは
 Dangerでできること
 SWET テスト基盤チームでの事例
15
Copyright © DeNA Co.,Ltd. All Rights Reserved.
利用しているツールの組み合わせ
 Gitホスティングサービス
⁃ GitHub Enterprise
 CI / CDツール
⁃ Jenkins
...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
GitHub Pull Request Builder + fastlane
 GitHub Pull Request Builder
⁃ PRのコ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
GitHub Pull Request Builder + fastlane
 GitHub Pull Request Builder
⁃ comm...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
fastlaneには danger アクションが用意されている
bundle exec fastlane する場合は必ず
use_bundle_exe...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
review レーンで Danger を実行
20
Copyright © DeNA Co.,Ltd. All Rights Reserved.
チームで用いているPull Requestルール
21
 .storyboard または .xibに変更があった場合、
画像が貼り付けられていること...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
コード化
 .storyboard または .xibに変更があった場合、
PR本文中に画像が貼り付けられていること
 テストディレクトリ以下に変更...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
共通なものはプラグイン化
23
 Pull Request本文に PULL_REQUEST_TEMPLATE.md と同じ項目
があり、テンプレート...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ラベルを自動的に貼る
24
 全てOK だった場合に In Review のラベルを追加
ラベルがある場合は安心してレビューできる
Copyright © DeNA Co.,Ltd. All Rights Reserved.
最後に
25
 Danger を使って PRの形式や最低限の条件 をチェックを 自動化
 プロジェクトに Dangerfile を用意して
Pul...
Upcoming SlideShare
Loading in …5
×

Dangerでpull requestレビューの指摘事項を減らす

2,152 views

Published on

Dangerというツールを使って Pull Request のレビューでの指摘を減らしましょう。

Published in: Technology
  • Be the first to comment

Dangerでpull requestレビューの指摘事項を減らす

  1. 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. DangerでPull Request レビューの指摘事項 を減らす AKIBA.swift スーパー勉強会 April 17, 2017 前田隼輔 SWETグループ DeNA Co., Ltd.
  2. 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介  前田隼輔 ⁃ 所属 • DeNA システム本部 SWETグループ テスト基盤チーム ⁃ 経歴 • 3月に DeNA SWETグループ に Join • それまでは SIer でWebアプリ開発 ⁃ 普段の業務 • CI/CD環境整備、ツールの検証 • バージョンアップ自動検証システムの開発 2
  3. 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. Pull Requestでこんなことありませんか? 3 ソースコード いじってるけど ビルドは通った? masterブランチ にはマージしないで ください 対応するチケットの URLを載せてください ロジックや設計以外での指摘事項が多すぎる
  4. 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. そこで 4 http://danger.systems/ https://github.com/danger/danger
  5. 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. 5 🚫 Stop saying “you forgot to …” in code review
  6. 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今日お話しすること  Dangerとは  Dangerでできること  SWET テスト基盤チームでの事例 6
  7. 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今日お話しすること  Dangerとは  Dangerでできること  SWET テスト基盤チームでの事例 7
  8. 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerとは  Pull Request時の確認事項を自動化できるツール  Dangerfile を作成し、その中で自由にチェックできる  チェック結果はホスティングサービスに通知し、 Pull Request内の commit status に反映できる  GitやGitホスティングサービスから情報を取得している 8
  9. 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerとは  Pull Request時の確認事項を自動化できるツール  Dangerfile を作成し、その中で自由にチェックできる  チェック結果はホスティングサービスに通知し、 Pull Request内の commit status に反映できる  GitやGitホスティングサービスから情報を取得している 9 Pull Requestの確認を自動化 するための基盤の提供
  10. 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerとは 10
  11. 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今日お話しすること  Dangerとは  Dangerでできること  SWET テスト基盤チームでの事例 11
  12. 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでできること  Dangerfile では Ruby構文 が使える  ホスティングサービスへの通知のためのDSL ⁃ message / warn / fail / markdown  git や github といった変数に情報が含まれている  github.api で OctoKit (GitHub APIの Rubyクライアント)を取得できる 12
  13. 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでできること  Dangerfile では Ruby構文 が使える  ホスティングサービスへの通知のためのDSL ⁃ message / warn / fail / markdown  git や github といった変数に情報が含まれている  github.api で OctoKit (GitHub APIの Rubyクライアント)を取得できる 13 Ruby と GitHub API の知識があれば(なくてもググれば) なんでもできる
  14. 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでできること  Dangerfile では Ruby構文 が使える  ホスティングサービスへの通知のためのDSL ⁃ message / warn / fail / markdown  git や github といった変数に情報が含まれている  github.api で OctoKit (GitHub APIの Rubyクライアント)を取得できる 14 目的を見失わないように 🚫 Stop saying “you forgot to …” in code review
  15. 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今日お話しすること  Dangerとは  Dangerでできること  SWET テスト基盤チームでの事例 15
  16. 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. 利用しているツールの組み合わせ  Gitホスティングサービス ⁃ GitHub Enterprise  CI / CDツール ⁃ Jenkins ⁃ + GitHub Pull Request Builder  ビルドマネージャ ⁃ fastlane 🚀 16
  17. 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. GitHub Pull Request Builder + fastlane  GitHub Pull Request Builder ⁃ PRのコメント(Phrase)でビルドを開始できる  fastlane 🚀 ⁃ モバイルアプリに便利なビルドマネージャ lane名によって処理を振り分けることができる 17 ${ghgrpCommentBody} にPhraseが入る
  18. 18. Copyright © DeNA Co.,Ltd. All Rights Reserved. GitHub Pull Request Builder + fastlane  GitHub Pull Request Builder ⁃ commit status に phrase (= lane名) を指定 18 Contextを Phraseにする
  19. 19. Copyright © DeNA Co.,Ltd. All Rights Reserved. fastlaneには danger アクションが用意されている bundle exec fastlane する場合は必ず use_bundle_exec: false にしましょう 19 > fastlane actions danger
  20. 20. Copyright © DeNA Co.,Ltd. All Rights Reserved. review レーンで Danger を実行 20
  21. 21. Copyright © DeNA Co.,Ltd. All Rights Reserved. チームで用いているPull Requestルール 21  .storyboard または .xibに変更があった場合、 画像が貼り付けられていること  ソースディレクトリ に変更があった場合、 ビルド と シミュレータによるテスト が実行されていること  テストディレクトリ に変更があった場合、 シミュレータによるテスト が実行されていること  ビルド および テスト が実行されていた場合、 最新の結果が 成功 していること  Pull Request本文に PULL_REQUEST_TEMPLATE.md と同じ項目 があり、テンプレートから変更されていること  TODO のチェックが埋まっていること  ビルド と テスト はラベルによってスキップ可能  全てOK だった場合に In Review のラベルを追加
  22. 22. Copyright © DeNA Co.,Ltd. All Rights Reserved. コード化  .storyboard または .xibに変更があった場合、 PR本文中に画像が貼り付けられていること  テストディレクトリ以下に変更があった場合、 シミュレータによるテスト が実行されていること  ビルド および テスト が実行されていた場合、 最新の結果が 成功 していること
  23. 23. Copyright © DeNA Co.,Ltd. All Rights Reserved. 共通なものはプラグイン化 23  Pull Request本文に PULL_REQUEST_TEMPLATE.md と同じ項目 があり、テンプレートから変更されていること  TODO のチェックが埋まっていること  プラグインの作成も簡単 > danger plugins create プラグイン名 で作られたプロジェクト(danger-プラグイン名)の lib/プラグイン名/plugin.rb を編集  作成したプラグインの利用 Gemfileに追加するだけ PR本文の形式は プラグインでまとめて検証
  24. 24. Copyright © DeNA Co.,Ltd. All Rights Reserved. ラベルを自動的に貼る 24  全てOK だった場合に In Review のラベルを追加 ラベルがある場合は安心してレビューできる
  25. 25. Copyright © DeNA Co.,Ltd. All Rights Reserved. 最後に 25  Danger を使って PRの形式や最低限の条件 をチェックを 自動化  プロジェクトに Dangerfile を用意して Pull Request レビュー(前)指摘事項を減らしましょう

×