Enhanced User Interface
- Newly added Project 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 redefined on the build triggering.
- My Changes page 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").
The major difference from previous TeamCity version is ability to run builds not on latest changes, but on fixed sources revision. 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.
- 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 query syntax.
- 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.
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.
The feature 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.
- You can now leave a comment for a particular build. Also a separate comment can be entered on the build pin action.
Build Agents Management Improvements
- The agent's load Matrix 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 CPU benchmark 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 Open remote desktop 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.
- 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 Run Custom Build 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.
- After a period of EAP TeamCity now bundles Rake build runner to allow Ruby and Ruby on Rails developer to use TeamCity out of the box.
- Notifications improvements: possibility to reorder notification rules.
- Cleanup option to preserve or not the artifacts used by the build configuration.
- Visual SourceSafe integration improvements.
- Subversion 1.5 support.
- More properties are now supported in the VCS labeling pattern.
- Artifact 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.
- Cleaning sources: ability to select a build configuration or agent to clean up the sources.
- Ability to trigger a build on all compatible build agents.
- When copying a project, Administrator can copy users' notification rules.
- VCS labeling pattern and build number now support more properties references
What's New in TeamCity 3.1