Book Image

TeamCity 7 Continuous Integration Essentials

By : Volodymyr Melymuka
Book Image

TeamCity 7 Continuous Integration Essentials

By: Volodymyr Melymuka

Overview of this book

<p>Nowadays, Agile application development is usually done at a fast pace when many developers are working on the same piece of code. Every so often, this becomes a real challenge if there&rsquo;s no permanent control over consistency of the project source. It is often impossible to force lazy and/or busy programmers to execute tests before and after each of their commits. Continuous Integration is a well-known life saver for distributed development environments with TeamCity being one of the best and easy-to-use instruments utilizing it. <br /><br />"TeamCity 7 Continuous Integration Essentials" is the first book of its kind showing in a sequential approach &mdash; how to start implementing Continuous Integration &mdash; over generic projects and enclosing rich features of the TeamCity as a project gradually evolves.<br /><br />Learn how to do a quick-start with TeamCity and suite most of the common needs right out of the box. As the project grows and more sophisticated requirements to the build process arise, the examples from this guide will assist you showing how to unleash TeamCity hidden powers and adjust advanced features to bring stability into the distributed development process.<br /><br />You will learn how to start a new Java project from scratch generating a working &ldquo;skeleton&rdquo; of web application using Apache Maven and later adding some business logic and writing certain tests. After that, you will know how to perform a swift attach of TeamCity facilities to your project and eventually change it into rich featured information source describing the current state of your venture. If you want to benefit from Continuous Integration and are considering using TeamCity then this book is for you.<br /><br />You will be acquainted with everything you need to know in order to apply Continuous Integration with TeamCity by installing it first, then turning on automatic supervision over project&rsquo;s reliability, and finally tuning up advanced settings in order to match your needs.</p>
Table of Contents (15 chapters)

Features


Let's sum up some outstanding TeamCity features.

Automatic and manual build triggering

Do you want every change in the Version Control System (VCS) to be verified? It's never been easier. Just set up automatic build triggering on every commit and you are done. Also dependent builds could be instantly triggered after the completion of some other build and may even use their generated artifacts. At any time, we can schedule a manual build by simply clicking on the Run button.

Pre-tested commit

This concept also has another name—remote run. It is really a life saver when we wish to check the consistency of our patch with the whole project. Instead of performing a commit, we select Remote run on the commit screen and can decide whether to do an actual commit depending on build results. It is usually not a good idea to proceed with a commit if the build is either failed or did not introduce new failures itself, but kept previous ones in place.

Instant notifications

There are plenty of different ways to stay in touch with the TeamCity Server. On the other hand, it could be as simple as sending an e-mail to all interested parties and as exquisite as the Windows tray notifier. Many other options such as RSS feeds, Jabber, and plugins for major IDEs are supported.

Code coverage and inspections

Upon producing build results we may be interested in checking our code coverage. Further on, it is possible to apply over 600 IntelliJ IDEA's inspections in order to find actual and potential problems. Inspections result in thorough reports for probable bugs, performance issues, and obsolete code, if present.

Easy to verify code changes

No longer does the developer need to remember what the code looked like before a change had been introduced. TeamCity provides a very useful and effective comparison engine to easily see what actually has been modified with which changes.

Configurable test reports

You need not to wait for a long build run just to figure out that the very first test has failed. TeamCity will notify you at once when it notices a failing build. You will get a complete report showing which tests have failed, whether this problem has happened for the first time, and so on, with the full statistics the developer needs.

Comprehensive build infrastructure

TeamCity supports multiple multi-platform build agents which can be run in parallel independently of each other. It is possible to get workload information and history. Every bit of statistics related to builds is also accessible over time. It is possible to track build progress, run build chains, and apply enhanced build dependencies.

Enhanced VCS integration

TeamCity permits utilizing sophisticated VCS configuration. It can use a smart scheduling mechanism called quiet period , if there is a need not to run builds at once, but to wait until partial commits or ones from different roots are conducted. Agent-side checkout allows maintaining source code consistency over your builds spread between different build agents.

Advanced features

TeamCity provides flexible user management with the possibility of configuring per-project user roles and accesses along with user action audits. TeamCity supports adaptable user authentication with LDAP and NT authentication support, detection of hanging builds that take longer time than expected, discovery of JVM out-of-memory crashes, and on the fly thread dumps for running builds.