Feature #142
closed定期的にHudsonの情報を取得できるようにする
Description
やりたいこと¶
Hudsonの情報を定期的に取得したい。
今は、Hudson タブにアクセスした時に取得しているので、
ぼーっと待たされることが多々ある。
リポジトリだと Repository.fetch を使って情報を取得できるみたいなので
- Hudson.fetch
で情報を取得できるようになると良いかな。
Updated by Toshiyuki Ando about 15 years ago
ひとまず、
rake タスクで Hudson.fetch_buildresults というメソッドが呼び出せるように
なった。(実装はまだまだ)
で、Hudson 側にビルド結果を取得するコードを取り入れようと思ったら…
うーん。今までの実装汚すぎ。
整理しよう。うん。
Updated by Toshiyuki Ando about 15 years ago
前にも書いた気がするけど、
- DBに蓄積しているジョブの情報を取得する
- Hudsonからジョブの最新情報を取得する
- 最新情報を使って、各ジョブの情報を更新する
- 新しいジョブの場合は、まずジョブを作成する
- ジョブの情報を更新する(説明と状態=色)
- ヘルスレポートを更新する(ヘルスレポートの文章毎)
※ 説明、状態、ヘルスレポートは現在蓄積されていない
- ビルド情報を更新するかどうかをチェックする
(最新のビルド番号と蓄積しているビルド番号を比較) - 更新しない場合は、蓄積している最新のビルド情報を取得する
- 更新する場合
- RSS でビルドの最新情報を取得する
- 最新情報を使って、ビルドの情報を更新する(必要な分だけ)
- ビルドの詳細な結果(テスト結果やChangesetなど)を取得する
- 詳細な結果を取得する
- 詳細な結果を蓄積する
うーん。全然整理できてない。よくまぁ作れたもんだ。
そもそも
- ジョブの情報を取得する
- 更新があれば、ジョブを更新する
- 状態と、ヘルスレポート、説明の更新
- ビルド情報を更新するかどうか判定する
- 上記の情報に最新のビルド番号があるはずなので、それを使う
- ビルドの情報を取得する
- 更新があれば、ビルドを更新する
- ビルドの詳細な結果を取得する(オプションで設定されていれば)
- ビルドに詳細な結果を追加する(オプションで設定されていれば)
くらいだよな?
制限事項は、
- ビルド情報は多くなるからDBに蓄積されているもの全部は取り出さない。
- APIは何回も叩くと遅くなるから、なるべく叩く回数少なくする
これと上のを見合わせながら、もう一度整理しなおそう。
Updated by Toshiyuki Ando about 15 years ago
もそもそとテスト実装中。
これはどうだろうか?と思ったものをメモ。
- hudson_settings_health_report.get_url ってこのクラスにあるのがいいの?
⇒ ジョブの名前やURLを使ってあれこれしている
Updated by Toshiyuki Ando about 15 years ago
- Target version changed from 17 to 1.0.0
Updated by Toshiyuki Ando about 15 years ago
rake redmine_hudson:fetch_buildresults
で定期的に取得できるようになりました。
index にアクセスする際に取得しないよう、設定を変更できるようにしなくては。
repository では settings.yml で指定するようだけど、それと同じにするか?
それともプラグイン全体の設定として、プラグインのページで設定できるようにするか?
うーむ。
Updated by Toshiyuki Ando about 15 years ago
redmine_hudson::fetch_buildresults
だと名前が悪いので(ジョブの情報も取得するし)
redmine_hudson::fetch
にしよう。
Updated by Toshiyuki Ando about 15 years ago
エラーが発生した場合、どこに記録すべきなのか?
redmine:fetch_changesets の場合、
svn: OPTIONS (URL: 'http://hoge.local/svn/test-1'): サーバに接続できませんでした
のようなログがでるので、これに合わせてみるか。
Updated by Toshiyuki Ando about 15 years ago
Toshiyuki Ando wrote:
index にアクセスする際に取得しないよう、設定を変更できるようにしなくては。
repository では settings.yml で指定するようだけど、それと同じにするか?
それともプラグイン全体の設定として、プラグインのページで設定できるようにするか?
プラグイン全体の設定として、設定画面を用意することに。
settings の使い方、忘れてたよ…。
Updated by Toshiyuki Ando about 15 years ago
- Status changed from 新規(New) to 解決(Resolved)
Updated by Toshiyuki Ando about 15 years ago
- Status changed from 解決(Resolved) to 終了(Closed)