すごい cron ? - Jenkins 試した

Preview:

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 にでも

ご清聴ありがとうございます