Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TeamCity: How to get a list of last builds for each build configuration that are currently not running?

Tags:

rest

teamcity

api

I am using TeamCity 7.1. I want to get a list including the last build of each build configuration (build type) that is currently not running. I found this question: TeamCity - How do you get a list of the last finished build of each project through rest api? but the REST URI in the answer did not work for me.

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

seems to work and gives me all builds that succeeded after failing before.

But the opposite

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

does not return any builds.

I know that I can get all build types, iterate though them and get the most recent finished build using

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

("count=1&start=0" may not be necessary) but I am not really sure that what I get is really the latest build. Also this requires many REST calls for all build types. A neat solution would use only one REST call.

Any ideas?

like image 617
Jürgen Bayer Avatar asked Mar 06 '13 17:03

Jürgen Bayer


People also ask

How do I check my TeamCity build history?

Click All history link to open the History tab.

How do you get building steps on TeamCity?

In Build Steps, click Auto-detect build steps, and then select the proposed steps you want to add to the current build configuration. You can change their settings afterwards. When scanning the repository, TeamCity progressively searches for project files on the two highest levels of the source tree.

What is build locator in TeamCity?

BuildLocator Last modified: 21 September 2022. Represents a locator string for filtering Build entities. Examples: id:1 — find build with ID 1 .

How do you clean builds in TeamCity?

You can also enable automatic cleaning the sources before every build, if you check the option Clean all files before build on the Create/Edit Build Configuration> Version Control Settings page. If this option is checked, TeamCity performs a full checkout before each build.


1 Answers

As per the TeamCity REST API documentation from JetBrains, the builds can be located either of the following ways:

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

OR

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

This is must to have the buildType is being suffixed by a <buildTypeLocator> as per the current REST API if you are trying to query something under the buildType and <buildTypeLocator> can be id:<btXXX_internal_buildConfiguration_id> or name:<Build_Configuration_name> (Quote from documentation). So it is must that you need to specify build id or build name.

But, the ideal way as you expected will be something like:

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

Probably, you can raise this up in TeamCity Support I suppose.

like image 176
RinoTom Avatar answered Sep 27 '22 02:09

RinoTom