Your SlideShare is downloading. ×
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ルビコンペレストロイカ〜RubyOnRailsにおけるCI改革〜

963

Published on

LLDecade 講演資料です。

LLDecade 講演資料です。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
963
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. RubyOnRails CIPerestroika 〜RubyOnRailsにおけるCI改善〜 高倉利明 / @TrinityT
  • 2. はじめに_自己紹介● 高倉利明 / id:TrinityT● 株式会社アピリッツ(旧社名KBMJ)で RubyOnRailsでWebアプリ、 ブラウザゲーム開発してます。● 社内CIサーバ管理者 →今日はノウハウを紹介
  • 3. はじめに_今日の内容1. 社内CI環境の概要と工夫点2. RubyOnRailsでのCI設定例紹介3. ビルド結果通知の工夫点4. まとめ
  • 4. 社内CI環境の概要と工夫点
  • 5. 構成図 CIサーバ ソース管理サーバ テスト結果 開発者
  • 6. 構成CIツール Jenkinsソース管理 Git、Subversionビルド、テスト Rspec、RUnit、Maven2..etc
  • 7. CI環境においての工夫3点● ライブラリバージョン管理● 新規プロジェクト追加の高速化● テスト実行DB I/O高速化
  • 8. 工夫1_ライブラリバージョン管理Ruby関連ライブラリは進化が激しいので、社内に異なるバージョンの案件が多数存在● Jenkinsサーバ上にRVM(RubyVersionManager) で主要バージョンのRubyを設定してある● ライブラリはBundler or gemset(依存管理ツー ル)で管理→どんな構成(Ruby20XX)でもすぐにCI対応可能
  • 9. 工夫2_新規プロジェクト追加の高速化● 社内Gitリポジトリアクセス用のJenkins専用公開 鍵を配置● テスト環境用のDBユーザ/パスワードは共通● Jenkins設定項目を標準化したひな形を作って おきコピー→10分程度で新規プロジェクトのCI追加可能!
  • 10. 工夫3_テスト実行DB I/O高速化しょぼいサーバのためテスト遅い。。。→MySQLのデータディレクトリをオンメモリ(tmpfs)に配置→0円でテスト処理時間向上!※弊社環境ではテスト実行時間20%減ぐらい   CPU強化やSSD化などのほうが効率良さげ
  • 11. RubyOnRailsでの CI設定例紹介
  • 12. テストカバレッジ取得RcovやSimpleCovでカバレッジを取得。テスト追加の指針としている。
  • 13. テスト結果詳細取得詳細テスト結果が表示されるように、CI::Reporter(JUnit互換出力ツール)で詳細表示
  • 14. テーブル&カラムコメント追加ActiveRecordコネクタを拡張して、Migrationでコメントを追加している。#テーブル作成時create_table :hoges, :comment => "テーブルコメント" do |t| t.string :code, :comment => "fugafuga"end#カラム追加時add_column :hoges, :value, :integer, :comment => "カラムコメント"
  • 15. テーブル定義書自動生成常に最新のテーブル定義書をテーブル&カラムコメントをもとに自動生成
  • 16. ビルド結果通知設定
  • 17. なぜメール通知だけじゃ駄目?● メールだと無視される可能性が高い →迷惑メール扱いする人も・・・● CIを知らない人は堅苦しく感じるらしい →遊び心が重要
  • 18. IRCでの通知社内IRCサーバのチャンネルに通知
  • 19. 通知ランプ※三○兎で1000円ぐらい
  • 20. JenkinsPersonaPluginドラクエ
  • 21. JenkinsPersonaPluginコマンドー
  • 22. JenkinsPersonaPluginガンダムUC
  • 23. まとめ
  • 24. まとめ● 予め環境を最適化しておくことで 新規案件にすぐにCIを適用可能● 自動的に様々な情報を取ることで クオリティを上げる指針に● ビルド失敗の早期対処は最重要。 通知の工夫して遊び心を!!
  • 25. CIツール導入して一番良かったことテストコード書かないメンバーが激減!
  • 26. ご清聴ありがとうございました! 高倉利明 / @TrinityT サイト:http://d.hatena.ne.jp/TrinityT/

×