1

ハドソン(またはさまざまなプラグインのいずれか)でこれを行う方法があるかどうか疑問に思いました。私の理想的なシナリオ:

RESTのようなAPIを介してジョブに基づいてビルドをトリガーし、そのビルドでジョブIDを返したい。その後、このIDをポーリングしてステータスを確認したいと思います。それが終わったら、ステータスとビルド番号を確認したいと思います。

さて、私はそれを機能させることができないように見えるので、これが私がまだ実装していない私の現在の解決策です:

ビルドを行うためにREST呼び出しを行う場合、RESTフルではありません。HTMLを返すだけで、ジョブIDを取得するために一種の解析を行う必要があります。または、すべてのジョブを一覧表示するすべての履歴に対してREST呼び出しを実行することもできます。最新の呼び出しは、作成したばかりの履歴になります。それができたら、ビルドの出力についてコンソール出力をポーリングできます。

私の「理想的な」ソリューションを実装する方法を知っている人はいますか?

4

2 に答える 2

5

はい、これにはHudson Remote APIを使用できます(@Danが述べたように)。具体的には、リモートトリガーを受け入れるようにジョブを構成する必要があり( [ジョブの構成] ->[ビルドトリガー] ->[リモートでビルドをトリガー])、適切なURLへの単純なHTTPGETを使用してビルドを開始できます。

(ハドソンが認証を必要とする場合は、さらにいくつかのフープをジャンプする必要があるかもしれません。)

私はwgetでHudsonの仕事を始めることができます:

wget --auth-no-challenge --http-user=test --http-password=test "http://localhost:8080/job/My job/build?TOKEN=test"

#20これにより、解析可能なビルド番号を持つHTMLの束が返されます。次に、ビルド番号を使用して、ジョブが完了したか成功したかを照会できます。

ブラウザーから直接HudsonRemoteAPIを調べて、通常アクセスするほとんどのHudson Webページを追加する/api(または/api/xml実際のXML出力を確認する)ことができますhttp://your-hudson/job/My job/api/


更新:あなたの質問から、あなたはおそらく私が書いたものの多くを知っていることがわかります。組み込みのHudsonAPIドキュメントを少し調べる価値があります。私はちょうど役立つかもしれないこの一口を発見しました。

最新のビルドのビルド番号(プレーンテキスト)は、次のURLから取得できます。http://your-hudson/job/My job/lastBuild/buildNumber

ビルド番号を取得したら、APIを理解すれば、ポーリングとジョブのステータスは簡単だと思います。

于 2010-11-11T00:11:10.490 に答える
2

また、最新のビルド番号は必要ないが、ビルドURLを押すことによってトリガーされたビルドのビルド番号が必要な場合はどうなりますか?

私の知る限り、そのURLを押すと、ジョブのメインページにリダイレクトする302が返され、トリガーしたビルド番号のビルド番号はまったく示されません。

于 2011-05-30T11:57:00.000 に答える