4

XML 形式で TeamCity からビルド ステータスを取得する必要があります。RSS 形式が理想的です。

Teamcity 内の RSS フィードには慣れていますが、それは履歴ビューに近いため役に立ちません。Status Widget によって生成されたページに似たものを XML 形式で探しています。(参考までに、ステータス ウィジェット ページは XHTML ではありません - 試してみました!)

誰かが助けてくれる何かを持っているのだろうか?

敬具、 デビッド・クリスチャンセン

4

6 に答える 6

2

Syndication Feed以下のツールを使用しMy Settings And Toolsて RSS URL (ドキュメントはこちら) を生成し、変更とビルド結果を追跡してステータス (つまり、ビルド、および以前の成功/失敗) を判断できます。

例として、最近の 5 つのビルド結果を表示するために、次の URL を作成しました。

http://teamcity:8111/feed.html?buildTypeId=bt2&itemsType=builds&itemsCount=5

どこ:

  • buildTypeId構成の ID です (ビルドの URL を調べて取得します)
  • itemsType「ビルド」または「変更」、またはその両方である可能性があります

「変更」タイプを使用して、ビルドが現在進行中かどうかを判断できます...

や など、TeamCity RSS の追加の URL オプションがここbuildStatusにありsinceDateます。

: ゲスト アクセスを有効にしているかどうかに応じて、/httpAuth/feed.htmlまたはなどの異なるコンテキストを使用する必要がある場合があります/guestAuth/feed.html

于 2011-01-05T04:16:40.997 に答える
2

私はこの問題にしばらく取り組んできました

これは、c# のコードで teamcity にログインする方法を示す投稿です。

次に、HTMLAgilityPack を使用してテーブルを確認するだけです。

ゲスト アクセスをオンにすると、さらに簡単になります。それが役立つ場合は、すぐにリリースするコードをクリーンアップしています。あなたが別の言語で開発している場合、私もそこでお手伝いできます。

于 2008-12-15T16:09:22.023 に答える
1

おそらく、独自のプラグインを作成することをお勧めします。もちろん、Javaを知っている場合。カスタム Web コントローラーを作成して、好きな URL にバインドできます。このコントローラーは、buildId パラメーターを受け入れ、ビルド (SBuildServer.findBuildInstanceById()) を検索し、XML を出力できます。

TeamCity (TeamCity/devPackage) にバンドルされている samplePlugin.zip にある HelloUserController.java を見てください。

また、いくつかの TeamCity プラグインのソースを確認する価値があります: http://www.jetbrains.net/confluence/display/TW/TeamCity+Plugins

于 2008-12-16T00:18:23.847 に答える
1

編集:ご指摘のとおり、TeamCity からの RSS フィードには完成したビルドのみが含まれます。

1 つの可能性は、関心のあるプロジェクトの詳細ページから HTML を取得し、そこにあるビルドのテーブルの一番上のエントリから現在のステータスを取得することです。

別のオプション: Jabber または電子メール通知システムの使用を検討しましたか? よりきめ細かいイベント通知があります。

  • ビルド開始
  • ビルドが成功または失敗する

どちらも通知を生成し、そこからビルド ステータスを推測できます。電子メールの自動化は簡単で、Jabber はオープン スタンダードなので、これもかなり簡単だと思います。

これらのオプションはいずれも、RSS に変換するための小さなラッピング コードが必要です。

于 2008-12-11T11:37:15.177 に答える
0

この標準 XML ステータス フォーマットの概要は、あなたの言いたいことを説明していますか? TeamCity がこの形式を生成できると確信していますが、その方法は正確にはわかりません。Hudson はhttp://my.hudson.server.example.com:3030/cc.xmlのような URL でそれを行います。

于 2008-12-14T10:41:26.120 に答える
0

ビルドタイプごとに API を使用して実行しました。

curl -k "https://${SERVER}/guestAuth/app/rest/buildTypes/${BUILDTYPE}/builds/?locator=lookupLimit:1"|xpath -q -e //build/@status
于 2014-11-06T10:42:27.047 に答える