2011-01-20 12 views

Respuesta

27

La URL devuelve lo que solicita, incluido el porcentaje completado. 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> 

Fuente: http://devnet.jetbrains.net/message/5291132#5291132. La línea relevante en el REST API documentation es la que dice "http: // teamcity: 8111/httpAuth/app/rest/builds /? Locator = - para obtener compilaciones por" build locator "." en la sección "Uso".

Esto funciona con TeamCity versión 6.5; No he probado en las versiones anteriores, pero sospecho que va a funcionar de nuevo a la versión 5.

+3

Gracias por tomarse el tiempo para responder a esto. Esto surgió como el primer resultado en Google para mí y respondió mi consulta. Tu rock –

+2

Above devolverá solo las compilaciones que usan 'defaultBranch' (TeamCity 9.x). Este localizador devolverá todas las compilaciones en ejecución: 'locator = running: true, branch: default: any' – C0D3LIC1OU5

4

Puede utilizar "en ejecución: verdadero/falso/cualquier" como una de las dimensiones de construcción para el localizador de construcción. (EDIT: añadido en TeamCity 6,0)

http://confluence.jetbrains.net/display/TW/REST+API+Plugin

La documentación de la API REST TeamCity le dará algunos ejemplos de algunas de las maneras en que puede crear la dirección URL. La sección Localizador de compilación en esa página mostrará una lista de las diferentes opciones que tiene para refinar sus resultados (uno de los cuales se está ejecutando).

Sin embargo, no conozco una forma de obtener información sobre el tiempo transcurrido/estimado de las compilaciones en ejecución utilizando la API REST. No estoy seguro si esto sería posible. Si encontraras la manera de hacerlo, ¡me interesaría mucho leer cómo!

¡Buena suerte!

+1

Hmm. Intenté usar running: true, pero me devuelve la misma lista que cuando no la incluyo. Profundizando un poco más, parece que la API REST solo trata con datos esencialmente estáticos o históricos, y no con el estado actual, como las compilaciones actualmente en ejecución, parece que no puede obtenerlo en absoluto. Tal vez sea compatible con una versión posterior de TC (estoy en 5.1.5) – citizenmatt

+0

De hecho, podría ser mejor mezclar la API REST y /win32/userStatus.html - usa /ajax.html?getRunningBuilds=1 y /eventTracker.html. Oh, bueno, esperaba una interfaz agradable y fácil ... – citizenmatt

+0

Eso es muy interesante sobre la dimensión de construcción en ejecución, Matt. Nunca tuve la necesidad de ejecutar running: verdadero antes; Solo guardo una pequeña nota mental al respecto cuando hago otras cosas con la API REST. Después de jugar con él un poco, me di cuenta de que tampoco parece filtrar las versiones adecuadas para mí. Cuando observaba el REST al hacer referencia a datos históricos, ¿se topó con el uso previsto de correr? ¿Es cierto? Lamentablemente, creo que tiene razón acerca de la necesidad de una combinación con la API REST. – brandogs

0

Hice un poco de excavación y a post on JetBrain's site indicando que el soporte para la ejecución: verdadero fue realmente agregado para TC6. TeamCity 5.X REST documentation solo enlaces a una página diferente que no especifica qué fue compatible con TC5 y qué hay de nuevo en TC6.

EDIT: Hola Matt, he publicado una pregunta sobre REST documentation specific to TC 5.X. Sé que sería muy útil para mí saber qué es exactamente lo que puedo hacer con REST para la versión de TeamCity que estoy utilizando y pensé que también podría interesarte.

0

Usted tiene una variante que no uso API -

[http: //teamcity/ajax.html getRunningBuilds = 1]

Así que no es una buena variante, ¡pero para mí es muy buena!

0

realizo su pregunta es más de cinco años de edad, pero que quería

para averiguar que construye se están ejecutando actualmente, y en qué medida a través de ellos son (tiempo transcurrido en función del tiempo estimado)

El método como se sugiere en accepted answer solo proporciona el atributo percentageComplete, que no es tan útil sin tener que hacer otra llamada a la API.


Se puede conseguirse mediante el suministro de la fields request parameter a la URL, por ejemplo .:

serverUrl/httpAuth/app/rest/builds/?locator=running:true&fields=count,build({buildFields}) 

donde {buildFields} son propiedades del objeto builds. Por esto, yo estoy usando:

id,buildTypeId,number,status,branchName,startDate,queuedDate,href,running-info 

la URL completa es entonces

serverUrl/httpAuth/app/rest/builds/?locator=running:true&fields=count,build(id,buildTypeId,number,status,branchName,startDate,queuedDate,href,running-info) 

que devuelve algo así como

<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> 

que le dará el porcentaje completo y transcurrido/estimado tiempos totales en el elemento running-info.

Nota: Estoy utilizando TeamCity 9; los campos solicitan el parámetro appears to be present en la documentación de TeamCity 5.x-7.x pero el resultado puede no ser el mismo.

Cuestiones relacionadas