Асинхронно добавлять артефакт сборки в TeamCity
У меня есть конфигурация сборки, которая просто запускает скрипт powershell, и ниже показано, что делает этот скрипт
- Вызовите метод API первого отдыха, который запускает длительное задание
- Вызовите второй метод API оставшегося состояния, который проверяет состояние задания (периодически, до завершения состояния)
- Наконец, вызовите третий метод API rest, который загружает HTML-файл отчета (артефакт)
Все отлично работает, и в конце концов я показываю отчет на вкладке отчета. Обратите внимание, что остальные API-методы относятся к какой-то другой системе, но не являются API-интерфейсами остальных команд TeamCity.
Проблема в том, что этот скрипт блокирует агент сборки до тех пор, пока не завершится выполнение долго выполняющегося задания. То, что я ищу, это конечная точка TeamCity, так что он может добавить артефакт в законченную сборку. Другая система может отправить файл отчета в конечную точку отдыха. Я проверил раздел Build Artifacts руководства TeamCity Rest API, но кажется, что есть только несколько методов GET, мне нужен метод POST.
Кто-нибудь может предложить другое решение или прояснить мне, если TeamCity уже имеет эту функцию?
1 ответ
В настоящее время это не поддерживается. Соответствующий запрос в системе отслеживания проблем TeamCity: https://youtrack.jetbrains.com/issue/TW-11277. Текущий идентификатор обходного пути для помещения файлов в <TC_DATA_DIR>/system/artifacts/PROJECT_ID/BUILD_CONFIGURATION_ID/INTERNAL_BUILD_ID
каталог.