すごい 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 にでも
ご清聴ありがとうございます

すごい cron ? - Jenkins 試した