Gerrit Trigger Pluginを使ってJenkins   をGerritのレビューアにしてみよう                 第6回Jenkins勉強会 2012/10/19                       太田 健...
目次   自己紹介   書籍「入門Jenkins」の紹介   エンタープライズ開発でありがちなレビュー   Jenkinsによる自動レビュー   Gerritによる手動レビューのワークフロー自動化   Gerrit + Jenkin...
自己紹介   経歴       社内まったりツール開発 5.5年 (JavaScript & Perl)       お客様デスマソルジャーSE 4年 (主にJava、一部COBOL)       ソーシャルゲームQA 1.5年 (再び...
Java以外でのJenkinsの活用   Jenkinsの活用の定番は       JavaEE   だけど、現在はもっと色々なところで使われている       スマートフォンクライアントアプリ開発           iOS    ...
Java以外でのJenkinsの活用   ですが、情報が散在していてまとまったものがない   ので、4人で本を書きました   入門Jenkins – 実践「継続的インテグレーション」   入門という題ですが、全然入門じゃなくてマニアック...
Jenkinsを自動レビューアにしてみよう   本日は本の中から、Gerrit連携をお話します   題材       ただし、普通に本の紹介をしても面白くないので       よくあるSIでのレビューを効率化するために       J...
エンタープライズ開発でありがちなレビュー開発側ではCIっぽいことはしていたり することが多い                第三者の専門               チームがあるバー               ジョンの断面を手        ...
先ほどのレビューの問題点   断面に対して、一気にレビューをして、返却するため       戻ってきたときには既にコードベースが進んでいる       最新版に対する修正のワークロードが掛かる           修正漏れが起きやすい ...
Jenkinsによる自動レビュー   コードインスペクションツール       基本           開発者の各環境で実行、修正する           テストに組み込んでしまう方法もある       Jenkins上のコードイン...
Gerrit   Google製のレビューシステム       http://code.google.com/p/gerrit/   Gitをリポジトリとして使用する   レビューのワークフローを自動化する       ロール、権限を...
Gerrit概念図   各開発者はレビューに合格したコミットのみ取得可能
Gerritのワークフロー フローチャート
Gerritのワークフロー シーケンス図
Gerritデモ   簡単なプログラムでGerritのデモをします   プログラム       average           Doubleの配列の平均値を求めるクラスとメソッド           Junitテスト付き   環...
Gerrit + Jenkins   Gerrit単体       レビューのワークフローは自動化してくれる       しかし、Verified, Code Reviewとも手作業です   Gerrit + Jenkins     ...
Gerrit Trigger Pluginのイメージ                       通常のJenkinsだ                       とレビューし終わっ                        たコードをC...
Gerrit Trriger Plugin活用デモ   プログラム       StringUtilities.isBlank (空白判定)           ユニットテストは合格している           実装にStringを”=...
Gerrit + Jenkinsのメリット   手動のレビューの開始基準を自動テストの自動レビュー    にすることが簡単にできる       自動テストやコードインスペクションを通っていないガッカリな        コードをレビューするこ...
まとめ   Gerrit自体は少々取っつきにくいところもありますが、   エンタープライズ開発で必要となる厳密なレビュープロセ    スを効率化したい場合、非常に有用なので、是非導入を    検討してみて下さい   体験と導入は「入門Je...
Upcoming SlideShare
Loading in...5
×

Gerrit trigger pluginを使ってjenkinsをコードレビューシステムgerritのレビューアーにしてみよう

5,506

Published on

第6回Jenkins勉強会の発表資料です。

0 Comments
16 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,506
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
19
Comments
0
Likes
16
Embeds 0
No embeds

No notes for slide

Gerrit trigger pluginを使ってjenkinsをコードレビューシステムgerritのレビューアーにしてみよう

  1. 1. Gerrit Trigger Pluginを使ってJenkins をGerritのレビューアにしてみよう 第6回Jenkins勉強会 2012/10/19 太田 健一郎 @oota_ken
  2. 2. 目次 自己紹介 書籍「入門Jenkins」の紹介 エンタープライズ開発でありがちなレビュー Jenkinsによる自動レビュー Gerritによる手動レビューのワークフロー自動化 Gerrit + Jenkins ~Jenkinsをレビューアに~
  3. 3. 自己紹介 経歴  社内まったりツール開発 5.5年 (JavaScript & Perl)  お客様デスマソルジャーSE 4年 (主にJava、一部COBOL)  ソーシャルゲームQA 1.5年 (再び、JavaScript & Perl)  QAっていうけど、品質に関わることはほぼ何でもやります><  最近だと、Jenkinsの周り以外にも  JIRAの管理人  Gitブランチ管理設計  ゲームエンジン新バージョン検証  新端末検証 (Android & iOS)  メモリリーク対応&テクスチャバッファ最適化  チート対応  言語  RubyとかF#が好きだけど  仕事では、  シェルスクリプト 8割  Perl 1割  JavaScript 1割
  4. 4. Java以外でのJenkinsの活用 Jenkinsの活用の定番は  JavaEE だけど、現在はもっと色々なところで使われている  スマートフォンクライアントアプリ開発  iOS  Android  LLを使ったWebアプリ開発 (クライアント&サーバー)  Ruby on Rails  Catalyst  Node.js  JQuery
  5. 5. Java以外でのJenkinsの活用 ですが、情報が散在していてまとまったものがない ので、4人で本を書きました 入門Jenkins – 実践「継続的インテグレーション」 入門という題ですが、全然入門じゃなくてマニアック  Androidでの活用  Gerrit連携  Ruby on Rails  Catalyst
  6. 6. Jenkinsを自動レビューアにしてみよう 本日は本の中から、Gerrit連携をお話します 題材  ただし、普通に本の紹介をしても面白くないので  よくあるSIでのレビューを効率化するために  JenkinsをGerritの自動レビューアとして活用してみます
  7. 7. エンタープライズ開発でありがちなレビュー開発側ではCIっぽいことはしていたり することが多い 第三者の専門 チームがあるバー ジョンの断面を手 作業でレビュー
  8. 8. 先ほどのレビューの問題点 断面に対して、一気にレビューをして、返却するため  戻ってきたときには既にコードベースが進んでいる  最新版に対する修正のワークロードが掛かる  修正漏れが起きやすい  修正確認がしにくい CIによる自動レビューと専門家による手作業のレビュー が分断してしまっている 手作業のレビューが完了基準になりにくい
  9. 9. Jenkinsによる自動レビュー コードインスペクションツール  基本  開発者の各環境で実行、修正する  テストに組み込んでしまう方法もある  Jenkins上のコードインスペクションジョブ  全体のコードの品質の傾向を多角的に見るために使用する  各種メトリックスツールを併用する  Jenkins上で実行しているだけは直してもらいにくい
  10. 10. Gerrit Google製のレビューシステム  http://code.google.com/p/gerrit/ Gitをリポジトリとして使用する レビューのワークフローを自動化する  ロール、権限を細かく制御できる  レビュー、検証、却下のワークフローを自動化する  開発ブランチへのコミットに対してレビュープロセスを必須に できる とか色々あるけど、結構とっつきにくい><  詳しくは「入門Jenkins」をご覧下さい
  11. 11. Gerrit概念図 各開発者はレビューに合格したコミットのみ取得可能
  12. 12. Gerritのワークフロー フローチャート
  13. 13. Gerritのワークフロー シーケンス図
  14. 14. Gerritデモ 簡単なプログラムでGerritのデモをします プログラム  average  Doubleの配列の平均値を求めるクラスとメソッド  Junitテスト付き 環境  All in One Eclipse  EGit  Gerrit  Ubuntuの仮想マシン上
  15. 15. Gerrit + Jenkins Gerrit単体  レビューのワークフローは自動化してくれる  しかし、Verified, Code Reviewとも手作業です Gerrit + Jenkins  Gerrit Trigger Plugin  GerritへのコミットをJenkinsがフックする  ジョブの結果によってVerified, Code Reviewの投票ができる  例  ユニットテストのジョブが成功したら、Verified +1  コードインスペクションのジョブが成功したら、Code Review +1  Gerritのワークフロー後ではなく、レビュー前のコミットにフックできる ところが味噌
  16. 16. Gerrit Trigger Pluginのイメージ 通常のJenkinsだ とレビューし終わっ たコードをCIする Gerrit Trigger Plugin を使えば、レビュー 前のコードをJenkins でチェックできる
  17. 17. Gerrit Trriger Plugin活用デモ プログラム  StringUtilities.isBlank (空白判定)  ユニットテストは合格している  実装にStringを”==“で判定している問題がある (FindBugsで検出可) Gerritレビュー  Verified – 自動  Jenkinsのユニットテストジョブで成功すれば+1、失敗すれば-1  Code Review – 自動  JenkinsのFindBugsジョブで全合格なら+1、違反があれば-1  Code Review – 手動  JenkinsのジョブがVerifiedとCode Reviewを判定した後に人が最終 判定
  18. 18. Gerrit + Jenkinsのメリット 手動のレビューの開始基準を自動テストの自動レビュー にすることが簡単にできる  自動テストやコードインスペクションを通っていないガッカリな コードをレビューすることを減らせる  レビューアが本来集中すべき、ツールでチェックできないバグ に注力できる CIが組み込まれるため、レビューのフィードバックが細か くできる いざというときは、テストや自動レビューが合格しなくても、 ワークフローを進め、本番へマージできる 躾として、開発者側でコードインスペクションツールを常 に掛けるようになる
  19. 19. まとめ Gerrit自体は少々取っつきにくいところもありますが、 エンタープライズ開発で必要となる厳密なレビュープロセ スを効率化したい場合、非常に有用なので、是非導入を 検討してみて下さい 体験と導入は「入門Jenkins」の第6章でも扱っているの で、是非ご購入いただけると幸いです (宣伝) 本日の参加者の中から三名にじゃんけんで「入門 Jenkins」をプレゼントします!!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×