38
すごい cron ? Jenkins を試した 2013-07-06 広島Ruby勉強会 #032

すごい cron ? - Jenkins 試した

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

Page 1: すごい cron ? - Jenkins 試した

すごい cron ?Jenkins を試した

2013-07-06 広島Ruby勉強会 #032

Page 2: すごい cron ? - Jenkins 試した

cron の代わりに jenkins を使うことにしてみた

Page 3: すごい cron ? - Jenkins 試した

cron の代わりに jenkins を使うことにしてみた

そろそろJenkins力を上げたいし

Page 4: すごい cron ? - Jenkins 試した

cron って何?

•決まった時間に•コンピュータに仕事をさせる

Page 5: すごい cron ? - Jenkins 試した

Jenkins って何?

•継続的インテグレーションを行うための支援ツール

•ビルド -> テスト実行 -> デプロイ•全体の流れを自動化•失敗したら通知

Page 6: すごい cron ? - Jenkins 試した

Jenkins

•こんな時にジョブが動く•コミットした時•毎日0時 のような決めた時間に

Page 7: すごい cron ? - Jenkins 試した

Cron の代わりにできる

Page 8: すごい cron ? - Jenkins 試した

Mac の cron の問題

•スリープ中の実行がどうなってるのかよくわからない

Page 9: すごい cron ? - Jenkins 試した

とりあえず良い点

•いつ実行されたかわかりやすい•失敗したかどうかわかりやすい•失敗した時に再実行が楽•定時処理以外にも コミットをきっかけにできる

Page 10: すごい cron ? - Jenkins 試した

とりあえず良い点

•ジョブ終了後に別のジョブを開始できる•同時に実行できるジョブを制限できる•実行結果との関連付けされる

Page 11: すごい cron ? - Jenkins 試した

まだ試せてないけど

•ジョブの分散が簡単にできるらしい•ジョブの実行を外部に任せられる•ローカルマシンでの実行が苦しくなったら外に

Page 12: すごい cron ? - Jenkins 試した

起きてる問題点

•スリープ中に•毎10分に行うジョブが• 1時間に1回しか走らない•遅延する• 1分程度の ネットワーク通信が失敗する

Page 13: すごい cron ? - Jenkins 試した

スリープ中

•よく失敗するので•先に書いた利点が意外と聞く•遅延は Mac のシステム環境設定で

•特定時刻にスリープを解除することでなんとかなりそう

•ただし、1日1回

Page 14: すごい cron ? - Jenkins 試した

実際に試してること

•パッケージの更新• eix-sync• emerge -uD world• rails プロジェクトのテスト実行•結果を残しておきたい

Page 15: すごい cron ? - Jenkins 試した

パッケージのアップデート

•おおむね毎日やる•勝手にやって欲しい• vcs-head 利用してるのも自動化したい

Page 16: すごい cron ? - Jenkins 試した

ジョブ一覧

Page 17: すごい cron ? - Jenkins 試した

実行結果

Page 18: すごい cron ? - Jenkins 試した

ジョブの連携

Page 19: すごい cron ? - Jenkins 試した

毎時0分に実行

Page 20: すごい cron ? - Jenkins 試した

スリープ中も動いてる

Page 21: すごい cron ? - Jenkins 試した

セットアップ関連

•ログインユーザで実行したい• jenkins の実行ユーザを変更した

•その代わり セキュリティ設定大事

Page 22: すごい cron ? - Jenkins 試した

詳しい設定方法はそのうち blog で

Page 23: すごい cron ? - Jenkins 試した

おまけ

• jenkins の ruby関連のpluginについて

Page 24: すごい cron ? - Jenkins 試した

試したもの

• rbenv plugin• ruby metrics plugin

Page 25: すごい cron ? - Jenkins 試した

rbenv

• jenkinsの作業ディレクトリに新規にインストールしてしまう

•ディスクがないので•使わなかった•環境変数を設定して自分でインストールしたものを利用

Page 26: すごい cron ? - Jenkins 試した

ruby metrics

•様々な情報を表示しつつ、統計がとれる•テスト結果• TODO や FIXME といったマーク•コードの量•テストのカバレッジ

Page 27: すごい cron ? - Jenkins 試した

テスト結果

• JUnitテスト結果の集計• JUnitのテスト結果と同じ出力を用意すれば使える

• ci_reporter•失敗したテストなども見れる

Page 28: すごい cron ? - Jenkins 試した

テスト結果

Page 29: すごい cron ? - Jenkins 試した

テスト結果

Page 30: すごい cron ? - Jenkins 試した

TODO や FIXME といったマーク

• Publish Rails Notes report• rake notes の出力を使う•コード中にいれた TODO の場所がわかる

Page 31: すごい cron ? - Jenkins 試した

Annotaions

Page 32: すごい cron ? - Jenkins 試した
Page 33: すごい cron ? - Jenkins 試した

コード量

• Publih Rails stats reports• rake stats の結果を利用•コードの量やテストに対するコード量の情報を表示

Page 34: すごい cron ? - Jenkins 試した
Page 35: すごい cron ? - Jenkins 試した

テストのカバレッジ

• Publish Rcov report•テストを実行した際に•テストされてないコードがわかる• simplecov の実行結果を利用• simpelcov-rcov を使う jenkinsが読める出力を作成できる

Page 36: すごい cron ? - Jenkins 試した
Page 37: すごい cron ? - Jenkins 試した

詳しいやり方はBlog にでも

Page 38: すごい cron ? - Jenkins 試した

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