Gerrit trigger pluginを使ってjenkinsをコードレビューシステムgerritのレビューアーにしてみよう
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 5,878 views

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

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

Statistics

Views

Total Views
5,878
Views on SlideShare
5,418
Embed Views
460

Actions

Likes
10
Downloads
13
Comments
0

5 Embeds 460

http://d.hatena.ne.jp 449
https://twitter.com 7
http://lino.hatenablog.jp 2
http://webcache.googleusercontent.com 1
http://hatenatunnel.appspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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