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:
- Borland StarTeam
- IBM Rational ClearCase (Base and UCM)
- Team Foundation Server (2005, 2008, 2010)
- Microsoft Visual SourceSafe
- SourceGear Vault
Why TeamCity is better for you, for developers, for admins, for build engineers, for managers:
- Perform better
- Start saving your time
- Extend as you go
- Enjoy all-around customer support
- Rely on scalable architecture and licensing
- Integrate and deploy continuously
IT’S ABSOLUTELY FREE:
- Professional edition
- Free forever
- Access to all product features
- Support via the forum and issue tracker
- 20 build configurations
- 3 build agents
- Perfect for small teams and individual developers
- Click here to free TeamCity download today.
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.
Form your project tree to inherit parent settings and permissions.
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:
Using feature branches for development? TeamCity will detect and build changes in your branch, as well as merge it to the master.
Synchronize your project settings with VCS, and never lose track of them again.
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.
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.
TeamCity takes advantage of cloud computing by dynamically scaling out its build agents farm on Amazon EC2, Microsoft Azure, and VMware vSphere.
Remote Run and Pre-Tested Commit:
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:
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.
Also please share this article as much as you can 🙂
Thanks for reading!