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 присутствует параметр запроса полей но результат может быть не таким.