Upload
tomohiko-himura
View
3.158
Download
4
Embed Size (px)
DESCRIPTION
jenkins をローカルマシンにインストールして、 cron の代わりに利用してみたという話。 おまけは jenkins の rbenv plugin と ruby metrics plugin の話 https://github.com/hiroshimarb/hiroshimarb.github.com/wiki/2013%E5%B9%B47%E6%9C%88%E3%81%AE%E6%B4%BB%E5%8B%95
Citation preview
すごい cron ?Jenkins を試した
2013-07-06 広島Ruby勉強会 #032
cron の代わりに jenkins を使うことにしてみた
cron の代わりに jenkins を使うことにしてみた
そろそろJenkins力を上げたいし
cron って何?
•決まった時間に•コンピュータに仕事をさせる
Jenkins って何?
•継続的インテグレーションを行うための支援ツール
•ビルド -> テスト実行 -> デプロイ•全体の流れを自動化•失敗したら通知
Jenkins
•こんな時にジョブが動く•コミットした時•毎日0時 のような決めた時間に
Cron の代わりにできる
Mac の cron の問題
•スリープ中の実行がどうなってるのかよくわからない
とりあえず良い点
•いつ実行されたかわかりやすい•失敗したかどうかわかりやすい•失敗した時に再実行が楽•定時処理以外にも コミットをきっかけにできる
とりあえず良い点
•ジョブ終了後に別のジョブを開始できる•同時に実行できるジョブを制限できる•実行結果との関連付けされる
まだ試せてないけど
•ジョブの分散が簡単にできるらしい•ジョブの実行を外部に任せられる•ローカルマシンでの実行が苦しくなったら外に
起きてる問題点
•スリープ中に•毎10分に行うジョブが• 1時間に1回しか走らない•遅延する• 1分程度の ネットワーク通信が失敗する
スリープ中
•よく失敗するので•先に書いた利点が意外と聞く•遅延は Mac のシステム環境設定で
•特定時刻にスリープを解除することでなんとかなりそう
•ただし、1日1回
実際に試してること
•パッケージの更新• eix-sync• emerge -uD world• rails プロジェクトのテスト実行•結果を残しておきたい
パッケージのアップデート
•おおむね毎日やる•勝手にやって欲しい• vcs-head 利用してるのも自動化したい
ジョブ一覧
実行結果
ジョブの連携
毎時0分に実行
スリープ中も動いてる
セットアップ関連
•ログインユーザで実行したい• jenkins の実行ユーザを変更した
•その代わり セキュリティ設定大事
詳しい設定方法はそのうち blog で
おまけ
• jenkins の ruby関連のpluginについて
試したもの
• rbenv plugin• ruby metrics plugin
rbenv
• jenkinsの作業ディレクトリに新規にインストールしてしまう
•ディスクがないので•使わなかった•環境変数を設定して自分でインストールしたものを利用
ruby metrics
•様々な情報を表示しつつ、統計がとれる•テスト結果• TODO や FIXME といったマーク•コードの量•テストのカバレッジ
テスト結果
• JUnitテスト結果の集計• JUnitのテスト結果と同じ出力を用意すれば使える
• ci_reporter•失敗したテストなども見れる
テスト結果
テスト結果
TODO や FIXME といったマーク
• Publish Rails Notes report• rake notes の出力を使う•コード中にいれた TODO の場所がわかる
Annotaions
コード量
• Publih Rails stats reports• rake stats の結果を利用•コードの量やテストに対するコード量の情報を表示
テストのカバレッジ
• Publish Rcov report•テストを実行した際に•テストされてないコードがわかる• simplecov の実行結果を利用• simpelcov-rcov を使う jenkinsが読める出力を作成できる
詳しいやり方はBlog にでも
ご清聴ありがとうございます