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

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

on

  • 5,650 views

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

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

Statistics

Views

Total Views
5,650
Slideshare-icon Views on SlideShare
5,194
Embed Views
456

Actions

Likes
10
Downloads
13
Comments
0

4 Embeds 456

http://d.hatena.ne.jp 447
https://twitter.com 7
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のレビューアーにしてみよう Gerrit trigger pluginを使ってjenkinsをコードレビューシステムgerritのレビューアーにしてみよう Presentation Transcript

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