Skip to content
Exlogare

TeamCity ingest

Отправка логов TeamCity в Exlogare через Build Step с условием on failure.

POST /api/ingest/teamcity принимает лог упавшей сборки и возвращает RCA.

Обязательные поля

ПолеТипЗаметки
build_type_idstringid конфигурации (%system.teamcity.buildType.id%).
build_idintглобальный id сборки (%teamcity.build.id%).
build_numberstring%system.build.number%.
statusstringfailure / success / error / cancelled / running.
logstringЛог упавшего шага, до 10 МиБ.
branch, commit_sha, build_url, project_nameопционально

Build step (рекомендуется)

Добавьте финальный Command Line шаг с условием “Execute always (even if build is failed)”:

if [ "%system.teamcity.build.is.successful%" != "true" ]; then
  curl -fsS -X POST https://api.exlogare.net/api/ingest/teamcity \
    -H "Authorization: Bearer %env.EXLOGARE_TOKEN%" \
    -H "Content-Type: application/json" \
    -d "$(jq -n \
      --arg bt   '%system.teamcity.buildType.id%' \
      --arg bn   '%system.build.number%' \
      --arg url  '%teamcity.serverUrl%/buildConfiguration/%system.teamcity.buildType.id%/%teamcity.build.id%' \
      --arg br   '%teamcity.build.branch%' \
      --arg sha  '%build.vcs.number%' \
      --arg pr   '%system.teamcity.projectName%' \
      --arg log  "$(cat build.log)" \
      '{build_type_id:$bt, build_id:'%teamcity.build.id%', build_number:$bn, status:"failure", branch:$br, commit_sha:$sha, build_url:$url, project_name:$pr, log:$log}')"
fi

EXLOGARE_TOKEN заведите как Password-параметр проекта.

Советы

  • TeamCity агрессивно эскейпит % — оборачивайте раскрытия в одинарные кавычки.
  • Используйте параметр в корне проекта, чтобы все child-конфигурации наследовали EXLOGARE_TOKEN.
  • Маскируйте токен через ##teamcity[setParameter ...] если нужно вывести что-то отладочное.