[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
ドリコムJenkins勉強会


         2013/04/17 @sue445

            Copyright Drecom Co., Ltd. All Rights Reserved.
自己紹介

@sue445
● drecomで社内ツールとか作ってま

  す
● TDDBC(TDDのワークショップ)でよ

  くTAをやってます
● 自称:サザエヴァンジェリスト

● 他称:歩くJenkins

● コミュニティ

   ○ 渋谷.rb

   ○ 新宿.rb

   ○ TDD BootCamp

   ○ appengine ja night


                      Copyright Drecom Co., Ltd. All Rights Reserved.
【宣伝】あずにゃんペロペロ〜
http://azusaar.appspot.com/




                              Copyright Drecom Co., Ltd. All Rights Reserved.
2011: Mashup Awards 7 授賞式
http://mashupawards.tumblr.com/post/15436635038/12-11-ma7-4-3




                                               Copyright Drecom Co., Ltd. All Rights Reserved.
Note

 ドリコムでは意識の高い人達がアプリ単
 位でJenkinsを乱立させてるので、これは
 あくまで社内ぼっちPJでの運用例です。




                Copyright Drecom Co., Ltd. All Rights Reserved.
Agenda

1. What is Jenkins?
2. Run Jenkins
3. "Ruby on Rails" on Jenkins
   (Tips and Plugins)



                    Copyright Drecom Co., Ltd. All Rights Reserved.
What is Jenkins?

● CI(Continuous Integration = 継続的インテグ
  レーション)ツールの1つ
● gitやsvnのリポジトリにコミットされた時に自動的
  にサーバ上でテストを実行して結果をメールや
  チャットなどで表示する
● cronの擬人化
● JenkinsはJavaで作られています(重要)




http://jenkins-ci.org/

                         Copyright Drecom Co., Ltd. All Rights Reserved.
イメージ図
         Repository

push                   pull




        Result
 User                              Jenkins

                      Copyright Drecom Co., Ltd. All Rights Reserved.
Run Jenkins (Simple Pattern)

jenkins.warをダウンロードして

java -jar jenkins.war




                               Copyright Drecom Co., Ltd. All Rights Reserved.
Run Jenkins (Recommendation)

                                  Server Instance

                                           jenkins.war




                          FrontServer            AppServer

参考URL: http://sue445.hatenablog.com/entry/2013/01/16/232443



                                                  Copyright Drecom Co., Ltd. All Rights Reserved.
Other CI Services

● cloudbees (http://www.cloudbees.com/)
   ○ Jenkinsの中の人が作ってるクラウドサービス
   ○ Jenkinsのアップデートも勝手にやってくれる
   ○ 制限はあるけど無料で使える
     ■ 無料枠だけだとバンドルされてるpluginしか使えない
        のが痛い
● Travis.ci (http://travis-ci.org/)
   ○ 無料で使える
   ○ Jenkinsに比べたら自由度は低いけどgithubとの連携は
     楽
     ■ public repositoryに公開してるならこれ使うのが一番
        いいと思う
   ○ drecomだとactiverecord-turntableや
      android_market_apiで利用
                                      Copyright Drecom Co., Ltd. All Rights Reserved.
"Ruby on Rails" on Jenkins
●   去年出版されたので比較的情
    報が新しい
●   Rails, Android, Perlの章で構
    成
●   Jenkins+Railsの組み合わせ
    で体系的に書いてあるのはこ
    の本くらいしかないと思う




                               Copyright Drecom Co., Ltd. All Rights Reserved.
Ruby 1.9と2.0を同時にビルドする




                 既存のジョブをコピーして
                 rvmで2.0.0を利用




                    Copyright Drecom Co., Ltd. All Rights Reserved.
1.9.3のタブ




           Copyright Drecom Co., Ltd. All Rights Reserved.
2.0.0のタブ




           Copyright Drecom Co., Ltd. All Rights Reserved.
メリット/デメリット
メリット
● 常に1.9系と2.0系でビルドしていればいつでも
  2.0に移行できる
 ○ 白金台のC社には負けてられない!
デメリット
● 同じジョブをコピーしてるので設定を変えたい時
  はその分書きなおす必要がある




                      Copyright Drecom Co., Ltd. All Rights Reserved.
Caution!
データベース名を変えずに複数同時にテストするとDBロックで落
ちることがあるw

対策(やった)
● 1つずつビルドを走らせる(アクティブなアプリが少なけばあ
  り)
  a. ジョブの同時実行数を1つにする(今の運用)
  b. 1.9のビルドが成功した後に2.0の方をビルド
対策(考えただけで実践はしてない)
● rubyのバージョンから動的にデータベース名を作る
● 別サーバでSlaveとして動かす




                     Copyright Drecom Co., Ltd. All Rights Reserved.
When. Travis.ci
ymlに追記するだけでOK




                  Copyright Drecom Co., Ltd. All Rights Reserved.
iPadをXFD化
JSONでAPIが提供されてるのでjsでサクッと作れる
https://github.com/sue445/jenkins_xfd




                             Copyright Drecom Co., Ltd. All Rights Reserved.
Custom Job Icon Plugin

                         ホスティング先によっ
                         てアイコンを使い分
                         け




                             Copyright Drecom Co., Ltd. All Rights Reserved.
個人Jenkins
apple-touch-icon.pngを使うとよさげ




                              Copyright Drecom Co., Ltd. All Rights Reserved.
Slow Testのプロット



                                                                      total time
                                worst top




http://sue445.hatenablog.com/entry/2013/03/17/015836


                                                       Copyright Drecom Co., Ltd. All Rights Reserved.
embeddable-build-status plugin




READMEとかにビルドステータスを表示
                                 Copyright Drecom Co., Ltd. All Rights Reserved.
Ruby metrics plugin




                      Copyright Drecom Co., Ltd. All Rights Reserved.
DRY Plugin   DRY = Don't Repeat Yourself
             (重複排除の原則)




                            Copyright Drecom Co., Ltd. All Rights Reserved.
Beer Plugin




              Copyright Drecom Co., Ltd. All Rights Reserved.
Jenkinsを1から入れた感想
●   JenkinsはpluginやAPIが豊富なのでいろいろ集計で
    きて楽しい
●   アプリを作り始める時からJenkinsでビルドしておくこと
    でコードの成長を視覚化できる
●   ローカルでテストを動かすよりサーバでテストを動かし
    た方が早く終わる
●   デプロイ前にJenkins先生にチェックしてもらうことで安
    心感が生まれる
     ○ テストがダメなら本番でもダメ!

●   サーバにJenkinsを立てることでミドル周りの知識がだ
    いぶついた
     ○ nginx, tomcat, IP制限, EC2やVPS契約etc




                           Copyright Drecom Co., Ltd. All Rights Reserved.
まとめ
●   サクッとためしたいならtravis.ciかCouldbees
●   いろいろやりたくなったら自分でJenkinsを入れてみる




                       Copyright Drecom Co., Ltd. All Rights Reserved.

More Related Content

ドリコムJenkins勉強会資料