我需要以XML的形式从TeamCity检索Build Status,RSS格式是理想的。
我熟悉Teamcity中的RSS提要但是没有用,因为它更像是历史视图。我正在寻找更像是状态窗口小部件生成的页面,但是以XML格式。 (仅供参考,状态小部件页面不是XHTML - 尝试过!)
我想知道是否有人可以提供任何可以提供帮助的内容?
亲切的问候, 大卫克里斯蒂安森
答案 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还有其他网址选项,例如buildStatus
和sinceDate
。
注意:根据您是否启用了访客访问权限,您可能需要使用不同的上下文,例如/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