Project groups

Several important improvements and bug fixes have been made in project groups feature.

External IDs for build configuration and template

It is now possible to define external ID for build configuration or template. It works the same way as external ID for project, i.e. it is used in URLs instead of internal ID, and it is used in configuration files. However with build configuration external IDs add some additional benefits:

Read more about using external IDs when accessing server by HTTP in our documentation: Accessing Server by HTTP, Patterns For Accessing Build Artifacts

Project configuration files changes

We continue refactoring the way configuration files are stored on disk under TeamCity data directory. This EAP brings two important changes:

Meta runner

Meta-runner is a Build Runner which acts as a combination of one or more build runners and has user interface targeted to user domain. For example, it is possible to configure build step based on Ant to upload some file to ftp. You can move this build step in some template, replace host, user and password with parameter references (%host%, %user%), and then reuse this template in several build configurations. This approach gives some flexibility, but is not very user friendly. Isn't it better to have a dedicated build runner for this task with specific user interface? This is what Meta-runner about.

Let's see how it works. Sometimes during the build process we need to replace some pattern in several files before making a distribution package. For example, if you build a TeamCity plugin you need to provide build number in teamcity-plugin.xml file bundled with the plugin. Let's try to create a build runner based on Ant ReplaceRegExp task with the following parameters in user interface:

First of all I need to create a build configuration with Ant build step and with replace target that will do all the work. I'll use the following custom build xml:

<project default="replace" name="ReplaceRegExp">

<target name="replace">

  <fileset dir="%basedir%">
    <include name="%files_to_include%"/>
    <exclude name="%files_to_exclude%"/>

<replaceregexp flags="g">
  <regexp pattern="%pattern_to_replace%"/>
  <substitution expression="%substitution%"/>
  <fileset dir="%basedir%">
    <include name="%files_to_include%"/>
    <exclude name="%files_to_exclude%"/>



Queued build page

Dependencies progress has been added on queued build page, you can now see estimates for all dependencies in one place.

Build problems

Disk usage report

Disk usage report has become aware of projects hierarchy. You can see how much disk space is taken by the project as a whole, and also drill down to sub-projects and see what sub-project uses most of disk space.
Additionally, one more server health report is now provided based on disk usage. This report shows configurations with huge log files, as well as links to builds having these log files. Huge (hundreds of megabytes) build logs are rarely useful, it is hard to analyze them and in most of cases they just waste space on disk. We hope this report will help to find configurations that produce such log files and fix them.

Branch filters in triggers

VCS and Schedule trigger have got new setting: Branch filter. With the help of the new filter you can limit the set of branches where automatic triggering will be performed. Read more about branch filters in our documentation: Working with Feature Branches#Triggers

Mercurial subrepo improvements