What's New in TeamCity 4.0
Enhanced User Interface
Newly added Project Home Page page lets you quickly access a list of all build configurations within a particular project. The page also provides access to selected statistics charts and reports of the build configurations.
Build Configuration Change Log is improved. Now you can filter changes between specific builds and optionally hide the builds from the view. You can also bookmark/send a link to the page with filtered results.
Build Results page now includes Build Parameters tab to display the properties specified in the build configuration including those Projects on the build triggering.
My Changes displays the first build with a change (with the last one available in the popup) and allows to filter out successful builds.
Names of the projects across the web UI became links and Build Configuration names now have popup for quick access to frequently used nested tabs.
Improved build results popup.
Improved UI for Ipr/Inspections/Java Code Duplicate Finder runners: ability to re-parse the project file from web UI.
Improved clean up rules configuration UI and identifying builds used by other builds right in the build history.
Build Chains and Snapshot Dependencies
New type of dependency between the builds is introduced: Snapshot Dependency. Using the dependencies you may now break a single build procedure into several builds that can be run both in sequence or in parallel. Such a set of builds is called a Build Chain. All the builds in a single chain will use the same snapshot of sources.
When a build A has a snapshot dependency on build B it means that before building build A, TeamCity ensures there is a build B using the same sources snapshot. If there is a suitable build in the history - it will be used. If not - TeamCity will trigger the necessary build and will start build A only when build B is finished. The dependency has options whether to search for suitable builds or re-run the build each time; whether to use the last finished or search for successful in the suitable ones and whether to run the depending build if one of the builds down the chain has failed.
Dependencies tab of the build results displays information on the build chains this build belong to and allows you to navigate through the chain.
Most common use cases for the chain builds are:
Dividing a build build between different platforms (e.g. build "Main" snapshot-depends on builds "Mac" and "Windows")
Dividing the build into parts run in parallel to reduce the feedback time (e.g. build "Publish Results" depends on "Core Tests A-M", "Core Tests M-Z", "Build Installer")
Having builds of tightly coupled projects as separate build procedures (e.g. build "All" depends on "Integration tests" which in turn depends on "Core Tests").
History Builds
The major difference from previous TeamCity version is ability to run builds not on latest changes, but on history build. This is supported both directly (you can choose a change list to run build upon in the Run Custom Build dialog) and indirectly (build chains utilize the feature as well as VCS triggers with VCS quiet period set).
An important note is that you can only run a history build for the changes detected since last addition or removal of a VCS root from/to the build configuration. The current VCS settings will be used to checkout the sources for the revisions specified.
Search
In addition to search by Project and Build Configuration name, build number and agent name, the search now support searching by all other relevant fields, including test names and change file names. The search is powered by Lucene and has advanced Search.
Tests Reporting
TeamCity now gathers information about tests that have failed recently (within last 120 hours) and displays tests statistics on Problematic Tests tab for a build configuration.
Also, for each test you can now browse test runs history on the Test Details Page. The page displays test duration chart, sortable test history and pass/runs statistics. We find if useful for investigating flaky test issues.
Tests tab of the build results page has also got some enhancements: now summary run time is displayed for the tests filtered.
Tests Reordering
TeamCity now tries to provide feedback on failing or fixed tests even faster: the tests running sequence is reordered to run the risk-group tests first. Risk group are the tests that failed recently or were modified by the latest changes.
Running Risk Group Tests First is available for IPR, Ant, NAnt and MSTest build runners and JUnit, TestNG, NUnit testing frameworks. (For NUnit, risk-group tests only include recently failed tests). TeamCity also provides the lists of the tests to the build script allowing for custom analysis.
Build Comments
You can now leave a comment for a particular build. Also a separate comment can be entered on the build Pinned Build.
Build Agents Management Improvements
The agent's load Agents displays comparative agent workload and build configurations/agents compatibility. It is useful in determining how build farm resources are used.
Disconnected build agents can be now manually removed from the UI.
All agents now calculate a simple Agents that can help to range agents based on their "speed". The benchmark results do not use any specific units and are useful for relative comparison only. Please note that the benchmark can be affected by the JVM version and (more importantly) by the JVM mode (client or server), so it's better to ensure these are constant through the build farm.
If you login into Windows-based build agents machines sometimes, you can find useful this feature: Connected Windows agents now have Agent Details link that allows to open RDP session right from the web UI.
A new requirement option has been introduced: product version comparator.
Agents' authorization state is now tracked in a more reliable way.
Custom Builds
Now you have an option to pass a property to a build (as an environment variable or a build script property) right on the build triggering: just use Projects dialog to start the build. In the dialog you can also set the change list to trigger the build upon or force the chain build not to use any existing builds.
TeamCity IDE Integration Plugins Improvements
You can now run a personal build on the specified build agent.
A new option has been introduced: ability to check-in a change even after a filed personal build if the build did not introduced any new problems (the same tests failed in previous build). This can allow to use the pre-tested commit even if the build already has some failed tests.
Eclipse Plugin Improvements
The plugin has been improved in a number of areas.
Support for Subversion with both Subversive and Subclipse
Support for Perforce
Ability to commit a personal build change manually or just apply the change onto the workspace
Notifications for personal build finish events
List of reusable recent commit comments
.NET Framework Integration Improvements
.Net projects can now be analised by FxCop using the bundled build runner. The results browser is the same as for Java inspections.
MSTest integration is improved.
Recently Galio project added support for TeamCity as one of its plugins.
Ruby Support
After a period of EAP TeamCity now bundles Rake Runner to allow Ruby and Ruby on Rails developer to use TeamCity out of the box.
Extensibility
Simplified plugins deployment: plugins can now be deployed into TeamCity Data Directory.
Open API improvements.
Custom Statistics now supports multiple series display on a single chart.
Improved Build Script Interaction with TeamCity now support better tests reporting and progress logging. You can also publish artifacts for a running build of publish FxCop and MSTest results via dedicated service messages.
Redesigned Plugins Packaging.
Miscellaneous
Notifier Settings improvements: possibility to reorder notification rules.
Cleanup option to preserve or not the artifacts used by the build configuration.
Visual Source Safe improvements.
Subversion 1.5 support.
More properties are now supported in the VCS labeling pattern.
5.Dependencies can now be checked right from the Administration web UI without running a build.
Ability to configure artifact dependencies on files inside archives (zip, jar, ear, war)
Tests suites are now displayed for the tests.
Clean Checkout: ability to select a build configuration or agent to clean up the sources.
Ability to trigger a build on all compatible build agents.
When Create Edit Project a project, Administrator can copy users' notification rules.
VCS labeling pattern and build number now support more Using Properties