後輩から借りた入門JENKINS「実践継続的インテグレーション」を読みました。
[amazonjs asin="4798035300" locale="JP" title="入門Jenkins―実践「継続的インテグレーション」"]
Gerritの導入について書かれているから読むべき、と渡されたのですが、むしろ会社で今やっている、RailsプロジェクトにJenkinsを導入する部分で大変参考になりました。
良かったことまとめ
Gerrit(6章)
Androidの章でGerritについて書かれていました。Android自体の開発には今のところ興味がないのですが、オンラインコードレビューは導入して行きたいと思ってるんですよね。GerritとJenkinsをうまく導入させる方法が書かれており、参考になりました。 ただ、subversion使っているプロジェクトだと使えなさそうで無理かな、感が(git-svn使えばいけるようですが) git使ってるプロジェクトはGitHubも使っているのでコードレビューできるんですよね。
Rakeプラグインとシェル(p172)
Jenkinsからシェルで
rake XX
とすることはできますが、そうではなくRakeプラグイン使えば直接XXが書けるというもの。 本をひと通り読んでみたんですが、シェルのほうが自由度高い部分があったりして、あまりシェルが長くなり過ぎないならあえてこれ使わなくてもいいのかな、という印象でした。
database_cleaner(p.146)
Railsプロジェクト、引き継いだものでdatabase_cleanerなにするものなのか(名前からデータ消すんだろうな、とは思っていたものの)理解してなくて、capybara-webkitを使った時にRSpecのデータを消す仕組みでは消せなくなるので、それを消すためのものだと理解。それの設定方法も書かれてありました。
simplecovとsimplecov-rcov(p.176)
カバレッジを取るrcovがRuby1.9から使えなくなったので、simplecovを使います。それをrcov形式に出力してくれるものがsimplecov-rcovです。(ややこしいですね(;^ω^)) これをJenkinsに組み込むことでカバレッジの変化がわかって捗るということのようです。
rails_best_practices(p.184)
書かれているコードがRailsのお作法に従っているか、という点でチェックを入れてくれるGemです。 iOSのXcodeでいうところのwarningを出してくれるようなイメージですかね。これもJenkinsに入れておくことでビルドごとに確認ができて良いということで、warning数をグラフで表示する方法について書かれています。
ビルド順(p.207)
単純ですが、テストが通った時のみデプロイする、のやり方が分からなくて書かれていたので助かりました。さっそく導入。
ビルドフロー(p.215)
上記をさらに、テスト終わってからデプロイまでの間にリポジトリが更新されてそっちを取りに行かないようにする方法や、複数のビルドが成功した時のみ実行する、みたいな設定について書かれています。
まとめ
Jenkinsの実践的な設定が書かれているので、ちょうど導入をしようとしている人にはとても良い本だと思います。 内容はAndroid,Ruby,Perlに関してなので、全ての内容が全て役に立つ、という人はなかなかいないと思いますが、自分の今の開発内容にマッチするところが一個でもあれば有益な情報が得られると思います。