2008-12-11 66 views
4

我需要以XML的形式從TeamCity檢索構建狀態,RSS格式將是理想的。如何從TeamCity檢索XML格式的構建狀態

我很熟悉Teamcity中的RSS提要,但這是沒用的,因爲它更像是歷史視圖。我正在尋找更類似於Status Widget生成的頁面,但是以XML形式。 (僅供參考,狀態小部件頁面不是XHTML - 嘗試過!)

我想知道是否有人能跨越任何可能的協助?

親切的問候, 大衛·克里斯蒂安森

回答

2

可以使用Syndication Feed工具My Settings And Tools下生成RSS URL(文檔here),並跟蹤變化與構建結果來確定狀態(即建築,以前成功/失敗)

舉個例子,我剛剛創建了這個網址,查看最近5生成結果:

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

其中:

  • buildTypeId是ID的配置(通過檢查構建的URL來獲得)
  • itemsType可以是「構建」或「更改」或兩者都可以

您可以使用「修改」類型,以確定是否構建正在進行中...

沒有關於TeamCity的RSS here額外的URL選項,如buildStatussinceDate

:根據是否已啓用來賓訪問,您可能需要使用不同的背景下,如/httpAuth/feed.html/guestAuth/feed.html

1

編輯:正如你指出,從TeamCity的RSS源僅包括已完成的生成。

一種可能性是從您感興趣的項目的詳細信息頁面中獲取HTML,然後從構建表中的頂部條目中提取當前狀態。

另一種選擇:您是否考慮過使用Jabber或電子郵件通知系統?它具有更細粒度的事件通知:

  • 構建開始
  • 構建成功或失敗

都產生通知,從中可以推斷建狀態。電子郵件的自動化很簡單,Jabber是一個開放的標準,所以我想這也相當簡單。

任何這些選項都需要一個小換行代碼來轉換爲RSS。

+0

感謝您的答覆,然而,在「我的設置和工具」的RSS選項顯示的歷史信息 - 不是「當前構建狀態」,這是什麼我在尋找。 – 2008-12-11 11:46:09

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

0

我做到了使用每buildtype的API:

curl -k "https://${SERVER}/guestAuth/app/rest/buildTypes/${BUILDTYPE}/builds/?locator=lookupLimit:1"|xpath -q -e //build/@status