Project

General

Profile

Actions

Feature #142

closed

定期的にHudsonの情報を取得できるようにする

Added by Toshiyuki Ando over 15 years ago. Updated about 15 years ago.

Status:
終了(Closed)
Priority:
通常(Normal)
Target version:
Start date:
08/02/2009
Due date:
08/16/2009
% Done:

100%

Estimated time:
Spent time:

Description

やりたいこと

Hudsonの情報を定期的に取得したい。
今は、Hudson タブにアクセスした時に取得しているので、
ぼーっと待たされることが多々ある。

リポジトリだと Repository.fetch を使って情報を取得できるみたいなので

  • Hudson.fetch

で情報を取得できるようになると良いかな。

Actions #1

Updated by Toshiyuki Ando about 15 years ago

ひとまず、

rake タスクで Hudson.fetch_buildresults というメソッドが呼び出せるように

なった。(実装はまだまだ)
で、Hudson 側にビルド結果を取得するコードを取り入れようと思ったら…
うーん。今までの実装汚すぎ。

整理しよう。うん。

Actions #2

Updated by Toshiyuki Ando about 15 years ago

前にも書いた気がするけど、

  1. DBに蓄積しているジョブの情報を取得する
  2. Hudsonからジョブの最新情報を取得する
  3. 最新情報を使って、各ジョブの情報を更新する
    1. 新しいジョブの場合は、まずジョブを作成する
    2. ジョブの情報を更新する(説明と状態=色)
    3. ヘルスレポートを更新する(ヘルスレポートの文章毎)
      ※ 説明、状態、ヘルスレポートは現在蓄積されていない
  4. ビルド情報を更新するかどうかをチェックする
    (最新のビルド番号と蓄積しているビルド番号を比較)
  5. 更新しない場合は、蓄積している最新のビルド情報を取得する
  6. 更新する場合
    1. RSS でビルドの最新情報を取得する
    2. 最新情報を使って、ビルドの情報を更新する(必要な分だけ)
  7. ビルドの詳細な結果(テスト結果やChangesetなど)を取得する
    1. 詳細な結果を取得する
    2. 詳細な結果を蓄積する

うーん。全然整理できてない。よくまぁ作れたもんだ。
そもそも

  1. ジョブの情報を取得する
  2. 更新があれば、ジョブを更新する
    1. 状態と、ヘルスレポート、説明の更新
  3. ビルド情報を更新するかどうか判定する
    1. 上記の情報に最新のビルド番号があるはずなので、それを使う
  4. ビルドの情報を取得する
  5. 更新があれば、ビルドを更新する
    1. ビルドの詳細な結果を取得する(オプションで設定されていれば)
    2. ビルドに詳細な結果を追加する(オプションで設定されていれば)

くらいだよな?
制限事項は、

  • ビルド情報は多くなるからDBに蓄積されているもの全部は取り出さない。
  • APIは何回も叩くと遅くなるから、なるべく叩く回数少なくする

これと上のを見合わせながら、もう一度整理しなおそう。

Actions #3

Updated by Toshiyuki Ando about 15 years ago

もそもそとテスト実装中。
これはどうだろうか?と思ったものをメモ。

  • hudson_settings_health_report.get_url ってこのクラスにあるのがいいの?
    ⇒ ジョブの名前やURLを使ってあれこれしている
Actions #4

Updated by Toshiyuki Ando about 15 years ago

  • Target version changed from 17 to 1.0.0
Actions #5

Updated by Toshiyuki Ando about 15 years ago

rake redmine_hudson:fetch_buildresults

で定期的に取得できるようになりました。
index にアクセスする際に取得しないよう、設定を変更できるようにしなくては。

repository では settings.yml で指定するようだけど、それと同じにするか?
それともプラグイン全体の設定として、プラグインのページで設定できるようにするか?

うーむ。

Actions #6

Updated by Toshiyuki Ando about 15 years ago

redmine_hudson::fetch_buildresults

だと名前が悪いので(ジョブの情報も取得するし)

redmine_hudson::fetch

にしよう。

Actions #7

Updated by Toshiyuki Ando about 15 years ago

エラーが発生した場合、どこに記録すべきなのか?
redmine:fetch_changesets の場合、

svn: OPTIONS (URL: 'http://hoge.local/svn/test-1'): サーバに接続できませんでした

のようなログがでるので、これに合わせてみるか。

Actions #8

Updated by Toshiyuki Ando about 15 years ago

Toshiyuki Ando wrote:

index にアクセスする際に取得しないよう、設定を変更できるようにしなくては。

repository では settings.yml で指定するようだけど、それと同じにするか?
それともプラグイン全体の設定として、プラグインのページで設定できるようにするか?

プラグイン全体の設定として、設定画面を用意することに。
settings の使い方、忘れてたよ…。

Actions #9

Updated by Toshiyuki Ando about 15 years ago

  • Status changed from 新規(New) to 解決(Resolved)
Actions #10

Updated by Toshiyuki Ando about 15 years ago

  • % Done changed from 0 to 100
Actions #11

Updated by Toshiyuki Ando about 15 years ago

  • Status changed from 解決(Resolved) to 終了(Closed)
Actions

Also available in: Atom PDF