Как программно получить некоторые файлы сборки в TeamCity?

В настоящее время я делаю плагин для TeamCity 8.1.4 для поддержки нашего инструмента. Последний генерирует некоторые файлы JSON и HTML/CSS/JS, которые я хотел бы включить в пользовательский интерфейс TeamCity через соответственно график и какой-то фрейм, я думаю.

Наш инструмент должен генерировать эти файлы в каталоге проекта после завершения каждой сборки. Я читал в документах, что могу создавать «артефакты сборки», которые в основном представляют собой файлы, хранящиеся на стороне сервера. Я подумал, что смогу получить к ним доступ с помощью метода getArtifactsDirectory() из интерфейса SBuild. Дело в том, что я понятия не имею, как поручить TeamCity создать артефакт сборки программно. Или, может быть, я думаю об этом задом наперед, и есть другой способ сделать это... Я был бы признателен за некоторые указатели, так как форум сообщества плагинов выглядит мертвым.


person LMeyer    schedule 26.09.2014    source источник


Ответы (1)


Если вы хотите добавить HTML-контент для создания результатов или проектов, ознакомьтесь с этой страницей документации: 'Включение сторонних отчетов в результаты сборки'

Конфигурацию, описанную в этом документе, можно выполнить с помощью Java API:

  • см. jetbrains.buildServer.web.reportTabs.ReportTabManager документы для настройки параметров вкладки на стороне сервера.
  • см. jetbrains.buildServer.agent.artifacts.ArtifactsWatcher для публикации файлов из агента сборки. Этот используется для публикации файлов в качестве артефактов сборки.

UPD Вышеупомянутые компоненты могут использоваться плагином для настройки «вкладки стороннего отчета» (без какой-либо ручной настройки). Таким образом, плагин может предоставить html-отчет из сборки без необходимости доступа к загруженным артефактам.

person Nikita Skvortsov    schedule 01.10.2014
comment
Спасибо за ответ. Однако я считаю, что ReportTabManager теперь называется ReportTabUtil, верно? - person LMeyer; 01.10.2014
comment
Нет. ReportTabManager — это другой bean-компонент, вы можете получить его из контекста Spring. У него есть методы createBuildReportTab и createProjectReportTab, которые должны вас заинтересовать. Также см. обновление в тексте ответа. - person Nikita Skvortsov; 02.10.2014
comment
Спасибо. Я не могу найти ReportTabManager в TeamCity. Хотя Javadoc... Что дает? - person LMeyer; 02.10.2014
comment
Похоже, что ReportTabManager не указан как открытый API и считается внутренним. - person Nikita Skvortsov; 03.10.2014