Как получить статус сборки в XML из TeamCity

Мне нужно получить статус сборки из TeamCity в форме XML, формат RSS был бы идеальным.

Я знаком с RSS-каналом в Teamcity, но это бесполезно, так как это скорее представление истории. Я ищу что-то более похожее на страницу, созданную виджетом состояния, но в форме XML. (К вашему сведению, страница виджета статуса не XHTML - пробовал!)

Интересно, есть ли у кого-нибудь что-нибудь, что могло бы помочь?

С наилучшими пожеланиями, Дэвид Кристиансен

11.12.2008 11:01:19
6 ОТВЕТОВ
РЕШЕНИЕ

Вы можете использовать Syndication Feedинструмент под My Settings And Toolsдля создания URL-адреса RSS (документация здесь ), и отслеживать изменения по сравнению с результатами сборки, чтобы определить статус (то есть, строительство, и ранее успешно / неудачно)

Например, я только что создал этот URL для просмотра последних 5 результатов сборки:

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

Куда:

  • buildTypeId идентификатор конфигурации (получите его, проверив URL-адрес сборки)
  • itemsType может быть «сборки» или «изменения» или оба

Вы можете использовать тип 'changes', чтобы определить, выполняется ли сборка в данный момент ...

Есть дополнительные опции URL для TeamCity RSS здесь , такие как buildStatusи sinceDate.

Примечание . В зависимости от того, включен ли у вас гостевой доступ, вам может понадобиться использовать разные контексты, такие как /httpAuth/feed.htmlили /guestAuth/feed.html.

2
5.01.2011 04:16:40

Изменить: как вы указали, RSS-канал от TeamCity включает только завершенные сборки.

Одной из возможностей может быть получение HTML-кода из интересующего вас проекта на странице сведений, а затем получение текущего статуса из верхней записи в таблице сборок.

Другой вариант: рассматривали ли вы использование системы уведомлений Jabber или по электронной почте? У этого есть более детальное уведомление о событии:

  • сборка начинается
  • сборка удалась или не удалась

оба генерируют уведомления, из которых вы можете определить статус сборки. Автоматизация электронной почты проста, и Jabber является открытым стандартом, поэтому я думаю, что это тоже достаточно просто.

Любой из этих вариантов потребует небольшого кода для преобразования в RSS.

1
11.12.2008 12:10:12
Спасибо за ваш ответ, однако, опция RSS в «Мои настройки и инструменты» отображает историческую информацию, а не «Текущий статус сборки», который я ищу.
David Christiansen 11.12.2008 11:46:09

Описывает ли это краткое описание стандартного формата статуса XML то, что вы имеете в виду? Я уверен, что TeamCity может создать этот формат, но не совсем уверен, как. Хадсон делает это с помощью URL-адреса, например http://my.hudson.server.example.com:3030/cc.xml .

0
14.12.2008 10:41:26
Первая ссылка работает для меня. Вторая ссылка является примером, чтобы показать вам форму статусных ссылок. Это не должно работать. (URL-адреса, оканчивающиеся на example.com, всегда являются примерами. Просто посетите один, например, example.com , для дальнейшего объяснения.)
Douglas Squirrel 21.11.2009 14:50:18

Я работаю над этой проблемой некоторое время

Вот пост, показывающий, как войти в teamcity в коде на C #

тогда это просто вопрос использования HTMLAgilityPack для просмотра таблицы.

если вы включите гостевой доступ еще проще. Я скоро исправлю код для релиза, если это поможет. Если вы развиваете на другом языке, я тоже могу помочь.

2
23.05.2017 12:27:04

Вероятно, лучше написать свой собственный плагин. Если вы знаете Java, конечно. Вы можете создать собственный веб-контроллер и привязать его к URL, который вам нравится, этот контроллер может принимать параметр buildId, искать сборку (SBuildServer.findBuildInstanceById ()) и выводить XML.

Взгляните на HelloUserController.java, который находится в samplePlugin.zip в комплекте с TeamCity (TeamCity / devPackage).

Также стоит проверить источники некоторых плагинов TeamCity: http://www.jetbrains.net/confluence/display/TW/TeamCity+Plugins

1
16.12.2008 00:18:23

Я сделал это с помощью API для каждого типа сборки:

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