4

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

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

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

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

4

6 回答 6

2

我一直在研究这个问题一段时间

这是一篇文章,向您展示如何在 c# 中使用代码登录到 teamcity

那么它只是使用 HTMLAgilityPack 查看表格的问题。

如果您打开访客访问,它会更容易。如果有帮助,我将尽快清理代码以供发布。如果您使用另一种语言进行开发,我也可以提供帮助。

于 2008-12-15T16:09:22.023 回答
2

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

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

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

在哪里:

  • buildTypeId是配置的 ID(通过检查构建的 URL 来获取)
  • itemsType可能是“构建”或“更改”或两者兼而有之

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

这里有 TeamCity RSS 的其他 URL 选项,例如buildStatussinceDate

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

于 2011-01-05T04:16:40.997 回答
1

编辑:正如您所指出的,来自 TeamCity 的 RSS 提要仅包括已完成的构建。

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

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

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

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

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

于 2008-12-11T11:37:15.177 回答
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

于 2008-12-16T00:18:23.847 回答
0

这个标准 XML 状态格式的摘要是否描述了您的意思?我很确定 TeamCity 可以生成这种格式,但不确定如何生成。Hudson 使用类似http://my.hudson.server.example.com:3030/cc.xml的 URL 来实现。

于 2008-12-14T10:41:26.120 回答
0

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

curl -k "https://${SERVER}/guestAuth/app/rest/buildTypes/${BUILDTYPE}/builds/?locator=lookupLimit:1"|xpath -q -e //build/@status
于 2014-11-06T10:42:27.047 回答