Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从TeamCity检索XML中的构建状态_Xml_Rss_Teamcity - Fatal编程技术网

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

如何从TeamCity检索XML中的构建状态,xml,rss,teamcity,Xml,Rss,Teamcity,我需要以XML的形式从TeamCity检索构建状态,RSS格式将是理想的 我熟悉Teamcity内的RSS提要,但这没有用,因为它更像是一个历史视图。我正在寻找更像由状态小部件生成的页面的东西,但是是XML格式的。(仅供参考,状态小部件页面不是XHTML-尝试过!) 我想知道是否有人发现了任何有帮助的东西 亲切问候,, David Christiansen编辑:正如您所指出的,TeamCity的RSS源只包括已完成的构建 一种可能是从您感兴趣的项目的详细信息页面获取HTML,然后从构建表的顶部条

我需要以XML的形式从TeamCity检索构建状态,RSS格式将是理想的

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

我想知道是否有人发现了任何有帮助的东西

亲切问候,,
David Christiansen

编辑:正如您所指出的,TeamCity的RSS源只包括已完成的构建

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

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

  • 构建开始
  • 构建成功还是失败
两者都会生成通知,从中可以推断生成状态。电子邮件的自动化非常简单,Jabber是一个开放的标准,所以我认为这也相当容易


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

描述了您的意思吗?我很确定TeamCity可以制作这种格式,但不确定如何制作。Hudson使用的URL类似于。

我已经研究这个问题有一段时间了

然后,只需使用HTMLAgilityPack查看表即可


如果你打开guest access,那就更容易了。如果有帮助的话,我正在清理即将发布的代码。如果你用另一种语言开发,我也可以帮你。

也许最好自己编写插件。当然,如果你懂Java的话。您可以创建自定义web控制器并将其绑定到您喜欢的url,此控制器可以接受buildId参数,搜索生成(SBuildServer.findBuildInstanceById())并输出XML

看看与TeamCity(TeamCity/devPackage)捆绑在一起的samplePlugin.zip中的HelloUserController.java


还值得检查一些TeamCity插件的来源:

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

例如,我刚刚创建了此URL以查看最近5次构建结果:

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

  • buildTypeId
    是配置的ID(通过检查构建的URL获取)
  • itemsType
    可以是“构建”或“更改”或两者兼而有之
您可以使用“更改”类型来确定当前是否正在进行生成

TeamCity RSS还有其他URL选项,如
buildStatus
sinceDate


注意:根据您是否启用了guest访问,您可能需要使用不同的上下文,例如
/httpAuth/feed.html
/guestAuth/feed.html
我使用每个构建类型的API进行了操作:

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

不过,感谢您的回复,“我的设置和工具”中的RSS选项显示历史信息,而不是我正在寻找的“当前构建状态”。第一个链接对我有用。第二个链接是显示状态链接形式的示例。它不应该起作用。(以example.com结尾的URL始终是示例。只需访问其中一个,例如,了解更多说明。)