Ten Years After: Welcome TeamCity 10!

Greetings, everyone!

Our team is excited to announce the arrival of TeamCity 10.0, the jubilee version of our continuous integration and deployment server!

The number ten is regarded as the most perfect of numbers, as it contains the life and the nothing, the Unit that did it all, and the zero, symbol of the matter and the Chaos, of which all came out; it represents a new beginning at a higher level.


We literally follow the symbolism: TeamCity 1.0 saw the light in 2006, and 10 years (and BTW over 16 000 bugfixes!) later, TeamCity 10.0 is here! This TeamCity version comes with advanced features revolutionizing the way you create your projects and builds, making you TeamCity installation more scalable, expanding your horizons with new and improved integrations, all packed in the revised UI.

While so many of our users love the simplicity and ease of configuring projects and builds via the UI, for repetitive tasks like copying projects, build configurations, etc. the programmatic approach is by far more efficient. With TeamCity 10.0 Kotlin-based DSL you’ll enter a new world of creating and maintaining your build infrastructure, dynamically applying all your changes to the projects and builds, skipping the need to use the UI.

In this release another take on scalability has been made – now you can set up a two-node TeamCity, distributing the workload between two servers.

Issue trackers integration has been improved: TFS, GitHub, and Bitbucket are supported out of the box

We’ve made significant progress making VCS-related improvements:
cross-platform support for TFS is finally here; TeamCity works with Perforce streams now and more!

This is just a teaser – for the full list of features see our What’s New  and Release Notes, and download TeamCity 10.0! Remember to check the Upgrade Notes before you install the new version!

Register for our webinar to see the new TeamCity 10.0 features in action!

Happy upgrading and building!

P.S. We’ve also adopted a tradition of giving a decennial retrospective of the TeamCity UI, so take a look at our site to see how pretty our GUI grown to be!

Posted in EAP, Features, FYI, News & Events, Tips&Tricks | 3 Comments

TeamCity 10 RC is out

Greetings, everybody!

This TeamCity 10.0 RC build comes with about 120 bug fixes and feature improvements.

We introduced a dedicated UI to link servers in the new projects popup, reworked the two-node configuration and made some more changes to further improve TeamCity.

All the details are available in our release notes, so don’t hesitate to download build  41965, try it and report any issues to our forum or the tracker.

Remember that the new version, TeamCity 10.0, modifies the data format, and it is still under development,  so it is recommended to install it on a trial server.

Please note that the TeamCity EAP license is not available for this build.

The official TeamCity 10.0 release is just round the corner – don’t miss it!

Happy building!

Posted in Bugfix, EAP, FYI, News & Events, Uncategorized | Comments Off on TeamCity 10 RC is out

TeamCity 10 EAP3 is released

Greeting, everyone!

The impatiently awaited TeamCity 10.0 EAP3 is here  and it comes with a bunch of new really amazing features!

For starters, here are a few of them:

  • Managing the workload for large TeamCity installations can be made more efficient with the 2-node TeamCity server configuration
  • If you tried generating projects programmatically with our DSL, introduced in the previous EAP, you can further take advantage of its improved capabilities.
  • TeamCity has now learned to detect flaky tests and provides you with informative dedicated UI
  • TFS Work Items Tracking support and much more!

All the details are available in our release notes: read them and see for yourself that with all the new features and over 250 bugfixes, this EAP release is impossible to miss!

Besides, this is the last EAP version before TeamCity 10 official release, so your feedback is appreciated more than ever! Please download build 41843, give it a try, and share your opinion on our forum or report any bugs directly to the tracker.

Remember that TeamCity 10.0 is still under development and, like any new version, it changes the data format, so we strongly recommend it be installed on a trial server.

TeamCity 10.0 release is on its way, so keep track of our news!

Happy building!

Posted in Bugfix, EAP, Features, News & Events | 2 Comments

Bica Studios Case Study

This guest post is brought to you by Bica Studios engineering team. It was initially set up as an interview, but it has outgrown the format to become a stand-alone blog post.

What does your company do?


BICA STUDIOS is a team that crafts the best gaming entertainment to bring enduring and inspiring new brands.

We develop great games as a service through a free-to-play approach, allowing millions of players to access new interactive experiences, exciting worlds and know charismatic characters with no initial monetary barriers. Our mission is to make a stand on the entertainment market by exploring current and alternative revenue models.

What obstacles or opportunities was your organization faced with?

From a business point of view, the company has to deal with market saturation and high UA costs. Another strong concern was the validation of proper use of strong engagement mechanics alongside meaningful and inspiring content.

As far as technology, our main concern is being able to deal with and react to change as quickly as possible.

What was your experience like before TC?

Our building pipeline is a complex one.

Having a mobile game as our main product, we obviously target all platforms: iOS, Android and Windows Phone. On the Android platform we target 3 different stores: Google Play Store, Amazon and Aptoide. Each build has a debug and store version.

So: 1 game, 3 platforms, 5 different builds, 10 different setups.

With manual specific configurations for every step, you can guess the amount of time that we take to handle this process and why we call it a ‘release day’ instead of ‘release morning’ or ‘release hour.’

Enter Unity 5 and build setup configuration through editor scripts. Several manual steps could be coded and automated on the build process, reducing a lot of human errors and saving a little bit of time. However, build time was still enormous and demanded at least one full-time dedicated individual to handle.

We decided it was time to a look into the world of Continuous Integration and try to lift the burden of building the project off our development team.

Continue reading

Posted in Blogroll, Case study, FYI | 4 Comments

TeamCity on Docker Hub – it’s official now!

As the popularity of Docker is growing exponentially, Docker Hub has become a huge software distribution platform. Users publish their own images, companies start their official repositories, and everyone is happy.

Up until now JetBrains wasn’t part of this. Then we noticed over 300 images related to TeamCity server, created by enthusiastic Docker Hub users. We decided to join the club and make support for this platform official.

We’ve published the latest version of our software as ready-to-use images and we are going to keep them updated as soon as new versions appear.

There are currently three official TeamCity images in Docker Hub:
1. jetbrains/teamcity-server
Use this image to run a fully functional, ready-to-use TeamCity server. There are multiple options and additional parameters available, which are summarized in the image description on its Docker Hub page.

Once the server is running, you will definitely need some build agents to do the actual work (building) for you. We’ve prepared two separate images for that.

2. jetbrains/teamcity-agent
This image is recommended for general Java development. Build agents created from this image will support agent-side checkout for Git, Mercurial, and SVN, any Java-related activity (as we provide OpenJDK installed), and a full set of features related to Java development.

3. jetbrains/teamcity-minimal-agent
As the requirements for build agents vary considerably, we have also created this minimalistic agent image which you can use for simple builds or as a base for your own images.

Take a look at the official JetBrains Docker Hub page for more details about our Docker images. Give them a try and let us know what you think!

Posted in Blogroll, FYI, How-To's | 8 Comments

TeamCity Digest #7

teamcity-digestWe are glad to present our seventh compilation of recent TeamCity-related articles and blog posts to you and we hope you will enjoy it. If you yourself stumble upon something interesting on the topic, or create your own piece on using TeamCity, please make sure to share it with us.

Darren Guy documents his experience setting up an automated build and deployment solution for Sitecore in a series of posts. Parts 1 and 6 focus specifically on TeamCity, other parts are linked to from each of these posts:
Building a Continuous Integration Environment for Sitecore Part 1 – Teamcity
Building a Continuous Integration Environment for Sitecore Part 6 – TeamCity project

Robert Firek from Codurance has put together this guide for creating a (somewhat simplified) continuous deployment pipeline based on Docker and TeamCity: Docker Meets Continuous Deployment.

Raygun’s Chief of Engineering describes their Continuous deployment process which lets them deploy 6 times per day. To achieve this, they use TeamCity and Octopus Deploy, among some other tools: Continuous Deployment: How To Make It Safer.

Visual Studio Team Services has released an update which can now consume TeamCity builds as artifacts in Release Management:

These two articles describe a Rails project continuous integration environment using TeamCity and Bitbucket. A curious note: the author focuses on using the default free edition of TeamCity which provides 20 build configurations and 3 build agents:
Deploy Your Rails Continuous Integration Environment With TeamCity and BitBucket (Part I: Initial Setup)
Deploy Your Rails Continuous Integration Environment With TeamCity and Bitbucket (Part II: Rails Integration)

Read this short post if you would like to avoid deployment on weekends and configure date/time triggers defined by a CRON expression in TeamCity accordingly: Run Web Application Deployment in TeamCity – Only on Weekdays.

See all TeamCity Digests.

Posted in Digest | Comments Off on TeamCity Digest #7

TeamCity 10 EAP 2 is out today

Greetings, everyone!

We are proud to announce that TeamCity 10.0 EAP 2 build 41463 has just been released!

One of the most exciting features of this EAP is the ability to create TeamCity projects and build configurations programmatically: using DSL based on the Kotlin language. You can now define TeamCity project settings using Kotlin, check them into your version control and TeamCity will execute your Kotlin script and produce projects and build configurations with the desired settings. See our Release notes for more information.

This EAP build also comes with improved algorithm for VCS changes polling. As you know, TeamCity polls repositories for changes according to the configured interval. Although this approach is quite reliable and easy to maintain, in case of large installations with thousands of VCS roots it imposes a great load on both the TeamCity server and VCS repository servers. To avoid this, you can set up a commit hook, but still you’d need to manually adjust checking-for-changes intervals in VCS roots, and to constantly monitor that the hook works. Fortunately, starting with this EAP, TeamCity will increase the checking-for-changes interval automatically, once it determines that changes were detected as a result of a commit hook. If TeamCity detects a non-working commit hook, the checking-for-changes interval will be decreased. Our Release Notes provide details.

Among other things, the latest TeamCity version is more pleasant to look at, as it comes with new refreshed icons in the Web UI! All the more reason to check out the full list of this EAP’s  great features, and give this version a test drive! Download  build 41463 and don’t hesitate to install it on a trial server.

All our EAP releases come with a  60-day Enterprise evaluation license, and we hope you’ll have something to say about the new version once you have tried this build.

Happy building!

Posted in Bugfix, EAP, Features, FYI, News & Events, Tips&Tricks | Comments Off on TeamCity 10 EAP 2 is out today

TeamCity Digest #6

We continue to gatheteamcity-digestr various articles and blog posts related to TeamCity from social media and online resources. Thanks to those of you who send them to us via twitter and other channels.

Azure Application Insights has recently released support for Release Annotations, and Endjin – who are also our partners – have created a TeamCity MetaRunner which wraps Release Annotation Powershell Script and eventually allows passing build values from TeamCity into the script: TeamCity MetaRunner for creating Release Annotations in Azure Application Insights

Kalle Launiala from The Ball project shares their recent platform updates which also feature TeamCity in the heart of their automation process: Full Stack with Automated DevOps

Michael Hedgpeth describes the process of making the Chef pipeline a part of TeamCity build process: Chef Cookbook Builds in TeamCity.

Matt Richardson has published the New TeamCity Octopus Deploy Build Trigger Plugin. It allows you to trigger builds when a deployment to an environment is complete, a new release is created, or a new tentacle is added to the server.

A nice overview and step-by-step instructions for two ways of integrating TeamCity and Bitbucket server – the native Commit Status Publisher from JetBrains and TeamCity Stash Integration plugin: How to Integrate TeamCity and Bitbucket Server.

And here is a separate description of TeamCity-Stash integration from the author of the  TeamCity Stash plugin himself: TeamCity Stash Integration.

Sveinung Kval Bakken describes their setup of Google Test Lab in TeamCity, which allows them to automatically run fully parallelized tests on tens and tens of devices over a number of dimensions: Using Google Cloud Test Lab with TeamCity.

Microsoft announced their Visual Studio extension for deploying TeamCity build artifacts using Release Management in VS Team Services:

As it turns out, Stackoverflow also uses TeamCity, which they describe in ‘The Build System’ section of this post on the internals of Stackoverflow’s deployment process: Stack Overflow: How We Do Deployment – 2016 Edition.

This blog post goes over the steps to integrate TeamCity to Git feature branch workflow in Deveo, which is a code management and collaboration platform: TeamCity integration to feature branch workflow.

See all TeamCity Digests.

Posted in Blogroll, Digest | Comments Off on TeamCity Digest #6

TeamCity 9.1.7 Update

Greetings, everyone!

It’s been a while since our latest update, so today we are announcing TeamCity 9.1.7.

Build 37573 is a bugfix release addressing over 90 issues, see the full list in our Release notes.

As usual, TeamCity 9.1.7 Build 37573 uses the same data structure as the other 9.1.x builds enabling you to freely upgrade/downgrade within the latest released version, so no need to hesitate: download TeamCity 9.1.7 and upgrade.

Most likely this is the last update for TeamCity 9.1.

We are working on the next EAP for TeamCity 10, so watch for the new build!

Happy building!

Posted in Bugfix, EAP, News & Events, Tips&Tricks | 1 Comment

TeamCity brings Azure Resource Manager support


Microsoft has recently introduced a new way to deploy cloud resources, so currently there exist two Azure deployment models supported by TeamCity as two separate plugins.

The earlier Azure deployment model is in the feature freeze state and is now called Azure Classic. The same goes for the existing TeamCity Azure support, now called TeamCity Azure Classic plugin.

Azure Resource Manager is the new Azure deployment model, which has some advanced features and is now becoming popular. More and more users want to deploy cloud agents with it, so today we are glad to announce a new plugin, the Azure Resource Manager plugin for TeamCity.

Plugin Description

The plugin for TeamCity starts new cloud build agents from a generalized VHD image when all of the regular build agents are busy. It uses resource groups to deploy build agent resources and supports authentication with an Azure Active Directory (AD) application.

While starting a new virtual machine, the plugin creates a new resource group and deploys required resources into it. When a cloud agent is terminating, the resource group with the allocated resources is removed.

The latest plugin version is available for download to the TeamCity 9.1.x users as a separate plugin which can be installed manually.

Azure Authentication Settings

The plugin accesses the Azure Resource Manager by leveraging an Azure AD application. To create a new application, follow the steps described in the Azure documentation. Then open new portal, navigate to Subscriptions, select the target subscription and assign a Contributor role to your Azure AD application.

Note: To find your application, type the application name in the users search box, because originally that list contains only usernames, not applications.

Virtual Machines Preparation

The plugin supports generalized VHD images to start new TeamCity cloud build agents. Perform the steps below to prepare VHD images.

New Image Creation

Create a new virtual machine with the Resource Manager via the new portal or cli tools, and configure it properly. Then fulfill generalization according to the Azure documentation for Linux and Windows virtual machines. As a result, you will get a VHD image in your blob storage.

Migrating Specialized Classic VM Image

If you previously used a specialized image or Start/Stop behaviour for a cloud build agent, you must capture it now. To do that, prepare a virtual machine by removing temporary files and then make a new image capture. Please refer to the Azure documentation for Linux and Windows machines. Then follow the steps below to migrate a generalized classic VM image.

Migrating Generalized Classic VM Image

If you already have a generalized VHD image located in the classic storage account, just copy it to a storage account created with the Resource Manager. To do that, use Microsoft Azure Storage Explorer.

Network Settings

To start new virtual machines, ensure that you have a Virtual Network and Subnet created in the target Azure region. If you already have virtual machines deployed with the Resource Manager, you can use them; otherwise you must create a new one and configure it as follows:

  1. Open the Virtual Network creation widget on the new portal and press Create.
  2. Fill in the settings and select the Resource Group located in your target Azure region.
  3. Press Create and wait for the deployment completion.

Note: To access your virtual machines by a public IP address, please ensure that you have properly configured security group rules for your Subnet.

Configuring Agent Cloud Profile in TeamCity

Open TeamCity Agent Cloud configuration and create a new Azure Resource Manager profile. Fill in the AD application credentials from the classic portal: copy the tenant id, client id values, and create a new client secret. Then select your subscription and target region to deploy new TeamCity build agent resources:


Configuring Build Agent Images

Then add a new agent image in the cloud profile by pressing the Add image button and set configuration parameters:


Source image is a VHD blob URL of generalized Virtual Machine. Please note that currently the Azure Resource Manager allows creating OS disk images only in the original storage account where the source VHD image is stored. More details are available in the Azure forum request.

Name prefix will be used as a prefix for the resource group name. Note that you must use unique prefixes within your subscription.

Network settings allow using the preliminary created virtual networks in your target location and optionally creating a public IP address for build agent machines.

After the image is added and the cloud profile is saved, TeamCity does a test start for virtual agents to gather the agent configuration. Once the agents are connected, TeamCity stores their parameters to be able to correctly process build configurations-to-agents compatibility.


You are welcome to try the plugin for TeamCity, and your feedback will be really appreciated, so please share your thoughts in the comments to this blog post, in the forum or issue tracker.

Happy building in the cloud!

Posted in Features, FYI, How-To's, Tips&Tricks | Tagged , , , , | Comments Off on TeamCity brings Azure Resource Manager support