TeamCity 5: Continuous Integration in the Cloud

DZone 's Guide to

TeamCity 5: Continuous Integration in the Cloud

· Cloud Zone ·
Free Resource
Installing a continuous integration server solves the problem of "integration hell," where the time it takes to integrate changed code with the repository code is longer than the time it took to make the changes.  Distributed build management and continuous integration (CI) tools like JetBrains' TeamCity are lifesavers for development teams that need to integrate code early and often.  In the past, if you didn't want to install continuous integration software or have the hardware to do so, you were out of luck.  Recently, JetBrains made it possible to run the newest version of TeamCity in the Amazon cloud.  DZone spoke with Pavel Sher, the TeamCity Project Manager, about how JetBrains is improving the process of continuous integration and bringing TeamCity into the Cloud Age.

TeamCity includes unit testing, code quality analysis, and early reporting on build problems.  Before version 5, TeamCity already had several features that improved the CI process.  Remote Run allows developers to trigger personal builds from a supported IDE (IDEA, Eclipse, MVS) to test change integrations.  If the personal build is successful, it automatically commits the changes to the version control system.  On-the-fly test reporting gives developers the ability to see errors before a build finishes.  Flexible per-user notifications and several other features improve CI for teams Sher says.  

TeamCity 5 New Features
In TeamCity 5.0, Java and .Net code coverage analysis has been improved.  Sher says Pre-tested Commit and Remote Run have also "received a big boost."  Remote Run support for Git and Merucurial is bundled with TeamCity 5.  Sher also mentioned an experimental Command Line remote run tool.  This tool allows developers to initiate the building of local changes remotely on the server from the local command line.  The tool isn't bundled with TeamCity but instead is available as a separate plugin from the plugins page.

Overview of project build configurations

Version 5 offers new integration with issue trackers like Jira and Bugzilla along with improved support for the Maven build management tool.   Support for the Git and Mercurial version control systems is bundled in with TeamCity 5.0.   Sher says there are new build configuration templates that eliminate redundancies in build configuration settings.  Project archiving templates in version 5.0 reduce clutter by putting inactive projects out of site. Also, users can now view the status of a change across build configurations on a single page.  Version 5 also added per-test responsibility for more fine-grained control over build failures.  Sher says these improvements make TeamCity easier to use.

TeamCity in the Cloud
The biggest new feature in TeamCity 5 is the ability to deploy the TeamCity server and build agents on Amazon EC2.  Sher explained a typical deployment of TeamCity in the cloud:
"You prepare an EC2 instance with a running TeamCity server and EC2 images with TeamCity agents installed. Then, with the help of TeamCity server's web UI, you specify EC2 credentials, the list of agent's images, and configure agent image startup and shutdown options. TeamCity server will then dynamically start agent image instances on an 'as needed' basis. The instances will be automatically shut down when idle."  Sher says there can be several types of images with different software pre-installed.  "When starting instances, the server will choose those most suitable for the builds waiting to be started," said Sher.  "This distribution is based on the configured 'Agent Requirements', which is a standard TeamCity feature to manage build distribution among agents.

Creating an Amazon EC2 Virtual Build Agent

Future Cloud Support
Sher told DZone what we can expect in the next version of TeamCity.  Sher said, "In the next major release we will continue improving the TeamCity UI. We will add more Maven-related features and more source control systems integrations (Vault plugin is on the way). We also plan to improve test analysis features to save developers time when they investigate tests failure, and much more."  
DZone asked Sher if TeamCity plans to support other cloud vendors besides Amazon.  Sher replied, "We are carefully watching the cloud computing market. CI often operates with extremely sensitive data, and cloud computing offerings are yet to build credibility among enterprise customers. Not all of them are ready to put their source files on a cloud yet, and in some sense, it slows down the process of adopting cloud technologies in CI. TeamCity cloud support is very flexible and easily expandable, so, as soon as we see a strong demand, for example, a cloud offering for VMWare cloud services, we will definitely support it."

The free Professional Server License for TeamCity 5 allows 20 user accounts, 20 build configurations, and 3 free build agents ($299 for each additional agent).  Open source licenses are available to non-commercial open source development projects that meet the requirements.  The full Enterprise Edition of TeamCity 5 starts at $1999 for new customers.  Today JetBrains released the IntelliJ IDEA 9. This is the first version of JetBrains' IDE that will feature an open source edition.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}