Best Continuous Integration (CI) server in 2016

TeamCity is a proprietary Continuous Integration (CI) server by JetBrains with free professional edition.

Continuous Integration (CI) is a development practice that requires developers to integrate or merge code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

After having set up TFS (Team Foundation Server) properly, I found that TFS has built in functionality to integrate with TeamCity. Considering my set-up goals of having exactly that, my next logical step was to go check out TeamCity.

Honestly, I did not even know if TeamCity was a downloadable program meant for local use, a web service, a program meant for server use, etc. Since we’ve got multiple people on our team, I’d like to keep the amount of local configuration for each member to a minimum. I’d also like to be able to administer this set-up and make changes, on the fly without having to bother the other guys. Fortunately, after poking around a lot what I have found out is that TeamCity is capable of doing this.

TeamCity supports the following version control systems:

Subversion

Perforce

CVS

Borland StarTeam

IBM Rational ClearCase (Base and UCM)

Team Foundation Server (2005, 2008, 2010)

Microsoft Visual SourceSafe

Git

Mercurial

SourceGear Vault

Why TeamCity is better for you, for developers, for admins, for build engineers, for managers:

So when you feel you’ve grown out of it, you can always move on to Enterprise edition.

YOUR 24/7 BUILD ENGINEER – Powerful Continuous Integration:

Remote run and pre-tested commit:

Build, check and run automated tests on the server even before committing your changes – keeping your code base clean at all times.

On-the-fly build progress reporting:

Don’t wait for a build to finish to discover that something is wrong.

Smart Configuration:

Project hierarchy

Form your project tree to inherit parent settings and permissions.

Templates:

Create templates with common settings and inherit any number of build configurations from it.

Build chains and dependencies:

Break down a single build procedure into parts that can be run in sequence or in parallel.

Comprehensive VCS integration:

Feature Branches:

Using feature branches for development? TeamCity will detect and build changes in your branch, as well as merge it to the master.

Versioned Settings:

Synchronize your project settings with VCS, and never lose track of them again.

Build History:

Keeping a history of builds, changes and failures is crucial to the success of any software development process. TeamCity enables you to run history builds, see statistics and test history reports, as well as pin, tag, and add builds to favorites. All of the changes are accumulated in the change log

Code Quality Tracking:

Helping you achieve better code quality on your project is the ultimate purpose of TeamCity. That’s why it comes bundled with famous IntelliJ IDEA and ReSharper code analysis and inspections for Java and .NET code. Major coverage engines are also bundled and supported out of the box. You can even use code quality as a build failure condition.

User Management:

CI server is something used by a whole team or even a whole company, that’s why TeamCity provides flexible user management, including assigning user roles, sorting users into groups, different ways of user authentication, and a log with all user actions for the transparency of all activity on the server.

With TeamCity you can build, check and run automated tests on the server even before committing your changes — keeping your code base clean at all times.

These features are provided via IDE plugins for IntelliJ IDEA-based products, Microsoft Visual Studio and Eclipse.

Problem and Test Management:

Several persons can be assigned for investigation of problems in one build. For example, Jane researches why the process exited with code 1, while Bill fixes some tests.

When a problem is assigned, notification(s) are sent to the corresponding person(s).

On-the-fly build progress reporting:

TeamCity tracks different stages of the build and reports all the information on the fly – both in the web UI and in all supported IDEs. You don’t have to wait for a build to finish to discover that something is wrong.

TeamCity alerts you about failed tests immediately and provides details on encountered errors.

Newly Failed Tests and “Fixed in”:

When newly checked-in code fails a test, TeamCity immediately shows it. If a test did not fail in the previous build, it will be shown as a “New” failed test.

For a failed test, you can see the build in which it failed for the first time and what changed in this build.

Ideal TeamCity framework for AGILE development:

Ideal TeamCity framework for WATERFALL development:

In closing:

Hopefully this has provided you with some helpful info. If you’ve got any questions please drop them in the comments below. They’re more likely to get answered there either by me or someone else as this is a fairly highly trafficked blog.

About The Author

I have 12 years direct experience on Information Technology sector. Before that I have started my career as a Software Engineer. Currently I am working As Software Quality Assurance Analyst lead . My interest and passion are read & write any technology related article, news etc. So in www.techinews24.com i am trying to write all kinds of technological reviews, news, tips etc. Hope you will enjoy to read the articles. Please give comments on my article if you like.