XML 形式で TeamCity からビルド ステータスを取得する必要があります。RSS 形式が理想的です。
Teamcity 内の RSS フィードには慣れていますが、それは履歴ビューに近いため役に立ちません。Status Widget によって生成されたページに似たものを XML 形式で探しています。(参考までに、ステータス ウィジェット ページは XHTML ではありません - 試してみました!)
誰かが助けてくれる何かを持っているのだろうか?
敬具、 デビッド・クリスチャンセン
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
。
私はこの問題にしばらく取り組んできました
これは、c# のコードで teamcity にログインする方法を示す投稿です。
次に、HTMLAgilityPack を使用してテーブルを確認するだけです。
ゲスト アクセスをオンにすると、さらに簡単になります。それが役立つ場合は、すぐにリリースするコードをクリーンアップしています。あなたが別の言語で開発している場合、私もそこでお手伝いできます。
おそらく、独自のプラグインを作成することをお勧めします。もちろん、Javaを知っている場合。カスタム Web コントローラーを作成して、好きな URL にバインドできます。このコントローラーは、buildId パラメーターを受け入れ、ビルド (SBuildServer.findBuildInstanceById()) を検索し、XML を出力できます。
TeamCity (TeamCity/devPackage) にバンドルされている samplePlugin.zip にある HelloUserController.java を見てください。
また、いくつかの TeamCity プラグインのソースを確認する価値があります: http://www.jetbrains.net/confluence/display/TW/TeamCity+Plugins
編集:ご指摘のとおり、TeamCity からの RSS フィードには完成したビルドのみが含まれます。
1 つの可能性は、関心のあるプロジェクトの詳細ページから HTML を取得し、そこにあるビルドのテーブルの一番上のエントリから現在のステータスを取得することです。
別のオプション: Jabber または電子メール通知システムの使用を検討しましたか? よりきめ細かいイベント通知があります。
どちらも通知を生成し、そこからビルド ステータスを推測できます。電子メールの自動化は簡単で、Jabber はオープン スタンダードなので、これもかなり簡単だと思います。
これらのオプションはいずれも、RSS に変換するための小さなラッピング コードが必要です。
この標準 XML ステータス フォーマットの概要は、あなたの言いたいことを説明していますか? TeamCity がこの形式を生成できると確信していますが、その方法は正確にはわかりません。Hudson はhttp://my.hudson.server.example.com:3030/cc.xmlのような URL でそれを行います。
ビルドタイプごとに API を使用して実行しました。
curl -k "https://${SERVER}/guestAuth/app/rest/buildTypes/${BUILDTYPE}/builds/?locator=lookupLimit:1"|xpath -q -e //build/@status