TeamCity - как получить в настоящее время сборки с помощью REST API?
Кто-нибудь знает, как использовать API-интерфейс TeamCity REST, чтобы узнать, какие сборки в данный момент запущены, и как далеко они проходят (истекшее время по сравнению с расчетным временем)?
Та
Matt
Ответы
Ответ 1
URL-адрес возвращает то, что вы запрашиваете, включая процент завершения. http://teamcityserver/httpAuth/app/rest/builds?locator=running:true
<builds count="1">
<build id="10" number="8" running="true" percentageComplete="24" status="SUCCESS" buildTypeId="bt3" startDate="20110714T210916+1200" href="/httpAuth/app/rest/builds/id:10" webUrl="http://phillipn02:29000/viewLog.html?buildId=10&buildTypeId=bt3"/>
</builds>
Источник: http://devnet.jetbrains.net/message/5291132#5291132.
Соответствующая строка в документации API REST - это та, которая читает "http://teamcity: 8111/httpAuth/app/rest/builds/? Locator = - для получения строит" локатор сборки ". в разделе" Использование".
Это работает с TeamCity версии 6.5; Я не пробовал его в более ранних версиях, но я подозреваю, что он вернется к версии 5.
Ответ 2
Вы можете использовать "running: true/false/any" в качестве одного из размеров сборки для локатора сборки. (EDIT: добавлено в TeamCity 6.0)
http://confluence.jetbrains.net/display/TW/REST+API+Plugin
Документация API REST TeamCity даст вам несколько примеров некоторых способов создания URL-адреса. В разделе "Локатор сборки" на этой странице будут перечислены различные параметры для уточнения результатов (один из которых выполняется).
Тем не менее, я не знаю, как получить информацию о запущенных сборках прошедшего/расчетного времени с помощью REST API. Я не уверен, что это будет возможно. Если бы вы нашли способ сделать это, мне было бы очень интересно узнать, как это сделать!
Удачи!
Ответ 3
Я немного искал и сообщение на сайте JetBrain, указав, что поддержка для запуска: true был добавлен для TC6. Документация TeamCity 5.X REST просто ссылается на другую страницу, которая не указывает, что было поддержано в TC5 и что нового для TC6.
EDIT: Привет, Мэтт, я задал вопрос о документации REST, относящейся к TC 5.X. Я знаю, что было бы очень полезно узнать, что именно я могу сделать с REST для версии TeamCity, которую я использую, и подумал, что это может вас заинтересовать!
Ответ 4
У вас вариант использования не api -
[HTTP://teamcity/ajax.html getRunningBuilds = 1]
Так что это не хороший вариант, но для меня это очень хорошо!
Ответ 5
Я понимаю, что ваш вопрос больше пяти лет, но вы хотели
чтобы узнать, какие сборки в данный момент запущены, и как далеко они проходят (прошедшее время по сравнению с расчетным временем)
Метод, предложенный в принятом ответе, дает только атрибут percentageComplete
, который не так полезен без необходимости повторного вызова API.
Это может быть достигнуто путем подачи параметров запроса к URL-адресу, например:
serverUrl/httpAuth/app/rest/builds/?locator=running:true&fields=count,build({buildFields})
где {buildFields}
- свойства объекта builds
. Для этого я использую:
id,buildTypeId,number,status,branchName,startDate,queuedDate,href,running-info
Полный URL-адрес тогда
serverUrl/httpAuth/app/rest/builds/?locator=running:true&fields=count,build(id,buildTypeId,number,status,branchName,startDate,queuedDate,href,running-info)
который возвращает что-то вроде
<builds count="1">
<build id="128990" buildTypeId="{build type ID}" number="256" status="SUCCESS" branchName="{branch name}" href="/httpAuth/app/rest/builds/id:128990">
<running-info percentageComplete="6" elapsedSeconds="52" estimatedTotalSeconds="924" currentStageText="{status}" outdated="false" probablyHanging="false"/>
<queuedDate>20160421T102558+0100</queuedDate>
<startDate>20160421T105709+0100</startDate>
</build>
</builds>
который даст вам процентное полное и истекшее/общее количество раз в элементе running-info
.
Примечание. Я использую TeamCity 9; в документации для TeamCity 5.x-7.x присутствует параметр запроса полей но результат может быть не таким.