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

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

我想知道是否有人有什么可以提供帮助的?

善良的问候,大卫·克里斯蒂安森

有帮助吗?

解决方案

您可以使用 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.

其他提示

我一直对这个问题一会儿现在

这里是你展示如何登录到TeamCity的代码在C#中交

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

如果您打开客人访问其更容易。我清理代码发布不久,有没有什么帮助。如果您在另一种语言开发,我可以帮那里了。

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

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

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

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

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

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

也许这是更好地编写自己的插件。如果你当然知道的Java。您可以创建自定义的网络控制器,并将其绑定到你喜欢的网址,这个控制器可以接受buildId参数,搜索版本(SBuildServer.findBuildInstanceById())和输出XML。

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

此外它的价值,以检查某些TeamCity的插件的来源: HTTP: //www.jetbrains.net/confluence/display/TW/TeamCity+Plugins

一个标准XML状态格式的本发明内容形容你是什么意思?我敢肯定的TeamCity可产生这种格式,但不完全知道如何。哈德森做它与像 HTTP网址://my.hudson.server.example .COM:3030 / cc.xml

我做到了使用每buildtype的API:

curl -k "https://${SERVER}/guestAuth/app/rest/buildTypes/${BUILDTYPE}/builds/?locator=lookupLimit:1"|xpath -q -e //build/@status
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top