Storing build configuration in source control

So I'd like to keep our build configuration in our source repository, for example in a .teamcity.yml file that contains everything TeamCity needs to know how to build a project. This also would allow the build configuration to easily differ for branches (ex. an experimental branch need to be built with a newer JDK).  Another advantage is that I'd like my users to self-provision their own project/build configurations without administrative access.  If you can't tell, I'm inspired by Travis-CI and their .travis.yml.  Are there any plans for this functionality or do I need to roll my own?

Comment actions Permalink


The first implementation of this feature is available in 9.0 EAP1. Please try it, your feedback is highly appreciated.
Here is the original issue -, please watch/vote for it.

Comment actions Permalink

This is great to see. Is there additional documentation yet?

At first glance (without downloading the EAP), my assumption is that the configuration is XML under the .teamcity folder and its expected only TeamCity will edit these files. Is this a valid assumption?

Also how will it handle configuration that varies by branch?

Is the expectation that only a TeamCity system adminstrator can create projects?

How about self-provisioning of projects, can a developer hand-create the configuration files and import it as a new project?

Comment actions Permalink

Hi Brian,

there is no additional documentation at this time. Config files are indeed stored under .teamcity directory, they can be edited via TeamCity web UI or directory in version control, in the latter case TeamCity applies detected changes to the config files on disk on TeamCity server machine. TeamCity tracks changes in and commits only to the default branch of the VCS root you use to store settings, all other branches are ignored. Developers or anyone who has a write access to the settings repository can create a project via commit, all permissions are handled by your VCS server.


Please sign in to leave a comment.