すごい cron ? - Jenkins 試した
-
Upload
tomohiko-himura -
Category
Technology
-
view
3.158 -
download
4
description
Transcript of すごい cron ? - Jenkins 試した
![Page 1: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/1.jpg)
すごい cron ?Jenkins を試した
2013-07-06 広島Ruby勉強会 #032
![Page 2: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/2.jpg)
cron の代わりに jenkins を使うことにしてみた
![Page 3: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/3.jpg)
cron の代わりに jenkins を使うことにしてみた
そろそろJenkins力を上げたいし
![Page 4: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/4.jpg)
cron って何?
•決まった時間に•コンピュータに仕事をさせる
![Page 5: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/5.jpg)
Jenkins って何?
•継続的インテグレーションを行うための支援ツール
•ビルド -> テスト実行 -> デプロイ•全体の流れを自動化•失敗したら通知
![Page 6: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/6.jpg)
Jenkins
•こんな時にジョブが動く•コミットした時•毎日0時 のような決めた時間に
![Page 7: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/7.jpg)
Cron の代わりにできる
![Page 8: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/8.jpg)
Mac の cron の問題
•スリープ中の実行がどうなってるのかよくわからない
![Page 9: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/9.jpg)
とりあえず良い点
•いつ実行されたかわかりやすい•失敗したかどうかわかりやすい•失敗した時に再実行が楽•定時処理以外にも コミットをきっかけにできる
![Page 10: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/10.jpg)
とりあえず良い点
•ジョブ終了後に別のジョブを開始できる•同時に実行できるジョブを制限できる•実行結果との関連付けされる
![Page 11: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/11.jpg)
まだ試せてないけど
•ジョブの分散が簡単にできるらしい•ジョブの実行を外部に任せられる•ローカルマシンでの実行が苦しくなったら外に
![Page 12: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/12.jpg)
起きてる問題点
•スリープ中に•毎10分に行うジョブが• 1時間に1回しか走らない•遅延する• 1分程度の ネットワーク通信が失敗する
![Page 13: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/13.jpg)
スリープ中
•よく失敗するので•先に書いた利点が意外と聞く•遅延は Mac のシステム環境設定で
•特定時刻にスリープを解除することでなんとかなりそう
•ただし、1日1回
![Page 14: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/14.jpg)
実際に試してること
•パッケージの更新• eix-sync• emerge -uD world• rails プロジェクトのテスト実行•結果を残しておきたい
![Page 15: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/15.jpg)
パッケージのアップデート
•おおむね毎日やる•勝手にやって欲しい• vcs-head 利用してるのも自動化したい
![Page 16: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/16.jpg)
ジョブ一覧
![Page 17: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/17.jpg)
実行結果
![Page 18: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/18.jpg)
ジョブの連携
![Page 19: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/19.jpg)
毎時0分に実行
![Page 20: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/20.jpg)
スリープ中も動いてる
![Page 21: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/21.jpg)
セットアップ関連
•ログインユーザで実行したい• jenkins の実行ユーザを変更した
•その代わり セキュリティ設定大事
![Page 22: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/22.jpg)
詳しい設定方法はそのうち blog で
![Page 23: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/23.jpg)
おまけ
• jenkins の ruby関連のpluginについて
![Page 24: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/24.jpg)
試したもの
• rbenv plugin• ruby metrics plugin
![Page 25: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/25.jpg)
rbenv
• jenkinsの作業ディレクトリに新規にインストールしてしまう
•ディスクがないので•使わなかった•環境変数を設定して自分でインストールしたものを利用
![Page 26: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/26.jpg)
ruby metrics
•様々な情報を表示しつつ、統計がとれる•テスト結果• TODO や FIXME といったマーク•コードの量•テストのカバレッジ
![Page 27: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/27.jpg)
テスト結果
• JUnitテスト結果の集計• JUnitのテスト結果と同じ出力を用意すれば使える
• ci_reporter•失敗したテストなども見れる
![Page 28: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/28.jpg)
テスト結果
![Page 29: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/29.jpg)
テスト結果
![Page 30: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/30.jpg)
TODO や FIXME といったマーク
• Publish Rails Notes report• rake notes の出力を使う•コード中にいれた TODO の場所がわかる
![Page 31: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/31.jpg)
Annotaions
![Page 32: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/32.jpg)
![Page 33: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/33.jpg)
コード量
• Publih Rails stats reports• rake stats の結果を利用•コードの量やテストに対するコード量の情報を表示
![Page 34: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/34.jpg)
![Page 35: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/35.jpg)
テストのカバレッジ
• Publish Rcov report•テストを実行した際に•テストされてないコードがわかる• simplecov の実行結果を利用• simpelcov-rcov を使う jenkinsが読める出力を作成できる
![Page 36: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/36.jpg)
![Page 37: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/37.jpg)
詳しいやり方はBlog にでも
![Page 38: すごい cron ? - Jenkins 試した](https://reader036.fdocument.pub/reader036/viewer/2022081421/55660e45d8b42aa6628b538e/html5/thumbnails/38.jpg)
ご清聴ありがとうございます