2013-03-06 9 views
5

Używam TeamCity 7.1. Chcę uzyskać listę zawierającą ostatnią kompilację każdej konfiguracji kompilacji (typu kompilacji), która obecnie nie jest uruchomiona. Znalazłem to pytanie: TeamCity - How do you get a list of the last finished build of each project through rest api?, ale URI REST w odpowiedzi nie działa dla mnie.TeamCity: Jak uzyskać listę ostatnich kompilacji dla każdej konfiguracji kompilacji, która obecnie nie działa?

<teamcity-server>/httpAuth/app/rest/builds?locator=sinceBuild:(status:failure) 

wydaje się działać i daje mi wszystkie kompilacje, które powiodły się po niepowodzeniu wcześniej.

Ale przeciwnie

<teamcity-server>/httpAuth/app/rest/builds?locator=sinceBuild:(status:success) 

nie zwraca żadnych budowli.

wiem, że mogę dostać wszystkie zbudować typy, iteracyjne choć nimi i pobrać najnowszy gotowy zbudować używając

<teamcity-server>/httpAuth/app/rest/buildTypes/id:<build-type-id>/builds/running:false?count=1&start=0 

("count = 1 & start = 0" może nie być konieczne) ale nie jestem naprawdę pewien, że to, co dostaję, jest naprawdę najnowszą wersją. Również to wymaga wielu wywołań REST dla wszystkich typów kompilacji. Schludne rozwiązanie wykorzystywałoby tylko jedno wywołanie REST.

Wszelkie pomysły?

+0

Próbowałem, zarówno '/httpAuth/app/rest/builds? Locator = sinceBuild: (status: failure)' i '/httpAuth/app/rest/builds? Locator = sinceBuild: (status: success) 'i te działają. Drugi może nie działać dla Ciebie, ponieważ możesz nie mieć żadnych kompilacji po ostatniej pomyślnej kompilacji. Następnie zwróci 0 liczbę. W zasadzie każdy z nich da ci 0, ponieważ twoja ostatnia kompilacja będzie albo SUKCESEM, albo FAILURE. – RinoTom

Odpowiedz

3

Jak na TeamCity REST API documentation from JetBrains, kompilacje może znajdować się jeden z następujących sposobów:

<teamcity-server>/httpAuth/app/rest/buildTypes/id:<build-type-id>/builds/running:false,status:success 

LUB

<teamcity-server>/httpAuth/app/rest/builds/running:false,status:success 

To musi mieć buildType jest sufiksem przez <buildTypeLocator> jak za obecny interfejs API REST, jeśli próbujesz wysłać zapytanie do czegoś pod nazwą buildType i <buildTypeLocator> can be id:<btXXX_internal_buildConfiguration_id> or name:<Build_Configuration_name> (cytat z dokumentacji). Dlatego konieczne jest podanie identyfikatora kompilacji lub nazwy kompilacji.

Ale idealny sposób zgodny z oczekiwaniami będzie coś takiego:

<teamcity-server>/httpAuth/app/rest/buildTypes/builds/running:false,status:success 

Prawdopodobnie można to wzbudzi w TeamCity Support sądzę.

+2

To nie dostanie ostatniej ukończonej kompilacji, ale * wszystkie * kompilacje. – vidstige

Powiązane problemy