如何从TeamCity中检索XML中的构建状态

时间:2008-12-11 11:01:20

标签: xml rss teamcity

我需要以XML的形式从TeamCity检索Build Status,RSS格式是理想的。

我熟悉Teamcity中的RSS提要但是没有用,因为它更像是历史视图。我正在寻找更像是状态窗口小部件生成的页面,但是以XML格式。 (仅供参考,状态小部件页面不是XHTML - 尝试过!)

我想知道是否有人可以提供任何可以提供帮助的内容?

亲切的问候, 大卫克里斯蒂安森

6 个答案:

答案 0 :(得分:2)

我一直在研究这个问题

Here's a post showing you how to login to teamcity in code in c#

然后只需使用HTMLAgilityPack来查看表格。

如果您打开访客访问权限则更容易。如果有帮助的话,我很快就会清理代码以便发布。如果你用另一种语言发展我也可以帮助那里。

答案 1 :(得分:2)

您可以使用Syndication Feed下的My Settings And Tools工具生成RSS网址(文档here),并跟踪更改与构建结果以确定状态(即构建,以及之前成功) /失败)

举个例子,我刚刚创建了这个URL来查看最后5个构建结果:

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

其中:

  • buildTypeId是配置的ID(通过检查构建的URL获取)
  • itemsType可以是“构建”或“更改”,也可以是

您可以使用“更改”类型来确定构建当前是否正在进行中......

TeamCity RSS here还有其他网址选项,例如buildStatussinceDate

注意:根据您是否启用了访客访问权限,您可能需要使用不同的上下文,例如/httpAuth/feed.html/guestAuth/feed.html

答案 2 :(得分:1)

编辑:正如您所指出的,来自TeamCity的RSS Feed仅包含已完成的版本。

一种可能性是从您感兴趣的项目的详细信息页面中获取HTML,然后从那里的构建表中的顶部条目中提取当前状态。

另一种选择:您是否考虑过使用Jabber或电子邮件通知系统?它有更细粒度的事件通知:

  • 构建开始
  • 构建成功或失败

都生成通知,您可以从中推断构建状态。电子邮件的自动化很简单,Jabber是一个开放的标准,所以我想这也相当容易。

这些选项中的任何一个都需要一些包装代码才能转换为RSS。

答案 3 :(得分: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

答案 4 :(得分:0)

this summary of a standard XML status format是否描述了您的意思?我很确定TeamCity可以生成这种格式,但不确定如何。 Hudson使用像http://my.hudson.server.example.com:3030/cc.xml这样的网址来做。

答案 5 :(得分:0)

我使用每个构建类型的API:

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