TeamCity and Visual Studio Online Source Control

Many teams are working with Visual Studio Online (VSO), a hosted Team Foundation Server that provides source control and issue tracking as a cloud service. While VSO comes with a build server as well, lots of developers prefer to use TeamCity for their continuous integration story because of its advanced features to automatically run builds for feature branches,  automatic merge and many others.

TeamCity supports building projects that are hosted on Visual Studio Online, the only thing we have to do is add a VCS root to our build configurations. Depending on the version control system used for the project (Git or Team Foundation Version Control – TFVC), this will be slightly different. Let’s have a look at our options.

Enabling alternate credentials

Independent from the version control system used, we will have to enable alternate credentials support on our Visual Studio Online account. Applications that work outside the browser, such as the git client or the command-line TFS client, require basic authentication credentials to work. By editing our VSO profile, we can set a secondary username that can be used for these scenarios.

After navigating to our VSO account portal, we can use the menu at the top-right to edit our profile. The Credentials tab lets us enable alternate credentials. After clicking Enable alternate credentials, we can set a secondary username and password we can use later on.

Visual Studio alternate credentials for TeamCity

After saving our changes here, we can proceed with connecting TeamCity to Visual Studio Online version control.

Connecting to Visual Studio Online Git

For teams embracing Git source control with Visual Studio Online, TeamCity setup is really easy. From the Administration section, we can create a new project from URL. Next, we can enter the URL to our VSO Git repository and provide the alternate credentials we’ve just set up. TeamCity will auto-detect we’re using a Git repository.

Create project from URL

Connecting to Visual Studio Online TFVC

Projects that are using Team Foundation Version Control (TFVC) can leverage TeamCity in their projects, too. The workflow to get started with a new project is the same: from the Administration section we can create a new project from URL, entering the URL to our Visual Studio Online project’s TFS path. This typically looks like$/ProjectName. For credentials, we can enter our Microsoft Account credentials, or use the alternate credentials created earlier.

Create TeamCity Project from Visual Studio Online

Note that for TeamCity versions < 8.1.5 and older versions of Team Explorer, the Microsoft Account name has to be prefixed with ##LIVE##\.

Creating the Build Configuration

Once we have connected to Visual Studio Online, TeamCity will try to identify potential build steps we can use. It will browse our repository and look for Visual Studio solution files, projects, batch files, NuGet packages that have to be restored and so on. We can use these automatic steps, or add our own to fine-tune our build process.

Auto-detectedbuild steps

When at least one build step is configured, we can start our build. It is possible to fine-tune our version control integration from the build configuration’s Version Control Settings. In here, we can configure what our branch structure looks like so that TeamCity automatically runs the build configuration for any feature branch we have. We can also modify the VCS Changes Checking interval and change when to check VSO  for changes.

Using a Trigger, a build can automatically be started when chenges are checked in to VSO. The VCS Trigger must be added to the build configuration to do this. Optionally, we can build for every single change, accumulate check-ins and so on.

Automatically start TeamCity build when changes checked in to Visual Studio Online

Many other triggers are available, such as the Schedule Trigger which starts a build at a given time. The Finish Build Trigger can start a build once another build has been finished. We can also monitor NuGet feeds and trigger a build when a given dependency changes.

TeamCity is a great companion to Visual Studio Online for many scenarios. Happy building!

Posted in Features, How-To's, Tips&Tricks | Tagged , , , , | 13 Comments

TeamCity 8.1.5 is out now

Greetings to all of you!

Did you know that TeamCity is approaching its eighth anniversary? In anticipation of this date, we have just released yet another update for TeamCity, version 8.1.5, containing about 50 bug fixes and enhancements!

We spent quite some time improving the performance of the Build Chains page and fixing other performance and usability problems; besides that, we knocked out some security issues in this build, so upgrading would be a really good idea!

Now TeamCity comes with the bundled Tomcat updated to version 7.0.55. Those making use of Teamcity’s NuGet capabilities will be interested to learn that you can specify additional command line parameters for NuGet.exe. All the more reason to upgrade!

Would you like to know more? Refer to our Release notes for the complete list of changes and download the latest TeamCity version! This release uses the same database format as other 8.1.x builds, so, should you run into any problems, downgrading to a previous 8.1.x version is absolutely painless.

Most likely, this is the last update for TeamCity 8.1.x before TeamCity 9.0 release in the late November, so soon you’ll hear more about our next milestone, TeamCity 9.0 EAP2!

Stay tuned and Happy building!

Posted in Blogroll, Bugfix, EAP, Features, FYI, News & Events, Tips&Tricks | 2 Comments

7 Steps to Build a Database Deployment Pipeline with Red Gate and TeamCity, October 2nd Webinar

Join us Thursday, October 2nd, 15:00 – 16:00 GMT (11:00 AM – 12:00 PM EDT) for our free webinar, 7 Steps to Build a Database Deployment Pipeline with Red Gate and TeamCity with Alex Yates of Red Gate.

Continuous delivery for databases brings speed, efficiency and predictability to your release cycle, by automating database deployments across a pipeline. Setting-up version control, continuous integration (CI) and automated release management can provide you with a steadier stream of reliable releases.

In this practical demo, Alex Yates, Pre-Sales Engineer at Red Gate, will show you how to set up continuous delivery for your SQL databases using TeamCity, Red Gate’s SQL Automation Pack, and Octopus Deploy. You’ll learn best practices for continuous integration, continuous delivery and automated deployments to set-up your own pipeline.

Space is limited, please register now. There will be an opportunity to ask questions during the webinar.

About the Presenter:

Alex Yates_squareAlex Yates has worked with database change management tools for four years, collaborating closely with users and dev teams along the way. As a pre-sales engineer, he gets to see a huge variety of server and dev environments, and helps folks solve their database development and delivery problems in whatever way works well for them. Ever the sharer, he also blogs about the lessons he learns:
Posted in Uncategorized | 9 Comments

Applied Automation TeamCity and NDepend

This guest blog post is from Wes McClure, Software Consultant and Founder of Full City Tech Co., a JetBrains Training and Consulting Partner. 

In Approaching Automation, I outlined a series of steps to follow to make worthwhile investments in automation. In the following example, I’ll show how to apply these steps to a software development process.

Inspecting code can provide valuable insight into improving the design of a system. Inspection tools are most valuable when they’re integrated with the environments that developers use to create software. They can provide instant feedback to improve, on the fly.

Inspection is also valuable as an analysis tool after the fact. One barrier to analysis is the time it takes to setup and inspect a code base. This process is ripe for automation so time can be spent analyzing results, not gathering them.

Wes McClure

Wes McClure, Software Consultant and Founder of Full City Tech Co.

But, blindly automating anything is as reckless as avoiding automation altogether.

Often, when discussing inspections, I find individuals wanting to inspect code bases every time a change is made to the system.

I’ll inquire how often do you perform this analysis currently and what do you do with the information? Often, I find there’s no methodical approach and sometimes inspection isn’t even a part of an existing process. It’s just something that someone said was a good idea.

Whatever the case, by stepping back and discussing how often the information is used and what it’s used for, we can begin to understand the value of automating inspections.

By challenging ourselves to understand why the information is valuable, we can determine the appropriate level of automation to improve.

Most teams are busy enough, they’ll be lucky to look at inspection results once a week. And, if they have to manually generate it, it’s much less likely they’ll even get around to it.

But, if inspection reports are automatically available on a weekly basis, they could invest more time in analyzing the results. And in turn, invest in acting on the results.

NDepend is a tool to inspect a .NET code base and provide actionable metrics to improve.

TeamCity is a platform to automate development processes, gather results and act upon them.

Let’s walk through the basis for automating inspections with NDepend and TeamCity.


First, we should outline the process.

NDepend is used to inspect a code base. This requires checking out the code, compiling it and then analyzing the results with NDepend.

Then, teams analyze the results for ways to improve.

And over time, they apply this insight to incrementally improve.

Eliminate the unnecessary

After outlining the process, it’s important to eliminate vestigial components. In the case of inspections, this is a matter of making a conscientious decision about what inspections are meaningful and what aren’t. Don’t just take everything out of the box. And, spend some time with NDepend to craft your own custom inspections.

Establish objectives

Next, it’s important to establish objectives. NDepend comes with the concept of rules. Reducing rule violations can improve the quality of a code base. For example, NDepend comes out of the box with rules that help detect breaking changes to software interfaces. It also provides rules to detect dead code which can hamper the longevity of software. Deciding on a set of rules to enforce may serve as a worthwhile objective.

Establish measures

Let’s say we want to reduce dead code in a system. Every system contains some amount of dead code. Some of it can be detected automatically. Measuring the current level of dead code in a system and setting goals to reduce it serves as a progress indicator.

Establishing value

What if your system is comprised of ten percent dead code? What would it be worth the get that to five percent? What about one percent?

Make a decision

Everything above becomes the basis with which one decides to automate, or not automate, inspections of dead code or any other aspect of a system.

I always recommend a margin of two or three times the potential cost. That way you have room to absorb the unknown.

Automate it

There’s no better way to describe automating it than to show you:


Over time, use the information you capture in TeamCity from the output of NDepend to see if efforts prove worthwhile.

Not everything is so easily quantifiable. Nonetheless, you can start to see how you can apply a methodical process focused on value to scientifically improve your development process.

The original post was published September 11th, 2014 on 

Posted in How-To's, Partner | Tagged , , , | 1 Comment

Join our CI Tools Survey and Win a Prize!

Hello everyone,

We are researching the ecosystem of the CI tools that you are using and we’ll appreciate if you could help us with this. You surely have got plenty of expert knowledge when it comes to using different CI tools and we’ll be happy if you shared your opinion and experience with us by spending 10-15 minutes on completing our survey. Of course, we hope that TeamCity is your favorite tool, but even if it’s not, we would like you to participate in the survey and help us understand what we could do to make TeamCity better.

Our survey is designed to be completed in one sitting, which means that once you close it, you won’t be able to go back to the questions you’ve already answered. Ready, set, go! We guarantee that all the information you provide will be kept confidential.

In case you think you’ve got better things to do, think twice! There is a bonus – those who complete the survey will be eligible for one of three $300 certificates. Don’t wait for long – get started with the survey!

The prize winners will be named on October, 10. Check your email to find out if you are one of them! There will also be an announcement in our blog and Twitter!

Stay tuned for the latest TeamCity news and happy building!

Posted in Uncategorized | 2 Comments

TeamCity 9.0 (code-named Hajipur) EAP is open

Greetings, everyone!

For quite some time now, before every new version, we’ve been running a very successful Early Access Program (EAP) which helps us improve TeamCity basing on feedback from our most enthusiastic users. So today we are happy to announce that the Early Access Program for TeamCity 9.0 is now officially open! Traditionally TeamCity versions are code-named after Indian cities, and this one is no exception, so please welcome Hajipur 9.0 EAP1 (build 31423).

TeamCity 9.0 plans

Before I talk about the features of this release, let me briefly outline the main directions for TeamCity 9.0.

The estimated release date for the new version is October 2014, which will probably be corrected as we approach the release.

One of the major directions is the ability to move projects among servers. We are currently working on ensuring safe and foolproof transfer of projects.

Among the priorities of the future version is the functionality allowing TeamCity users to store the project configuration settings in the VCS the same way it is done with the source code.

The advent of the cloud solutions gives one more significant course to our work: our efforts are directed toward cloud integration with VMware Vsphere and Microsoft Azure.

In addition to developing these new features, we are also investing considerable resources into improving TeamCity performance, reliability and ease of use.

Highlights of Hajipur 9.0 EAP1 (build 31423)

This release contains a snapshot of our continuing work on the upcoming release. We’ve been working hard and today we are presenting: two-way synchronization of your project settings with the version control – now you can store the project configuration settings in the VCS the same way it is done with the source code, Build Time Report, Unicode support for MS SQL and Oracle databases used by TeamCity and other features, such as the ability to upload meta-runners, tagging queued and running builds and more. We also introduced some changes aimed at speeding up the backup restore operations as well as clean-up, which is gradually being moved to the background.

We encourage everyone to refer to our release notes for details and, if you want to be a part of the TeamCity development process, download this EAP version and give it a try! We are collecting your feedback, so keep it coming! We are thrilled to hear what you have to say!

Help us make the new TeamCity better and happy building!

Posted in EAP, Features, FYI, News & Events, Uncategorized | 10 Comments

Hot summer version: TeamCity 8.1.4 is here

Hello everyone!

I enviously hope the summer is treating you well and you are enjoying the bright sun with an ice-cold drink in hand while writing code on your laptop in the atmosphere of complete harmony and relaxation!

Why am I fantasizing that the grass is greener on your side of the fence? That’s because this summer is blazing hot for the TeamCity development team, but we are craving cold drinks: trying to set right any smallest defect of TeamCity 8.1 while simultaneously brewing the brand new TeamCity 9.0!

So, today we are rolling out a new update, TeamCity 8.1.4, with over 50 fixes and improvements in various areas; the notable ones are several performance fixes, the fix for the regression of database restore performance which surfaced in 8.1.3, and the problem with NuGet Feed authentication. As you may have noticed, TeamCity is getting more and more stable: the number of issues reported and fixed in build 30168 is considerably smaller than our usual 100+.

What else? The bundled DotCover version has been updated to 2.7, and there is more: check out our Release Notes for the complete list of the bits of awesomeness brought by this version!

Build 30168 uses the same database version as all TeamCity 8.1.x releases, so why not give it a try when you can downgrade at any moment to one of 8.1.x builds?

Download TeamCity 8.1.4 now and give us feedback on this version!

Stay tuned for the news on TeamCity 9.0 and savor the summer!

Happy building!

Posted in Uncategorized | 3 Comments

TeamHackCity: Plugin Week 2014

Hello, one and all!

Today I want you to take a peek behind the scenes of the TeamCity development process. Some time ago our team of superstars held the TeamCity plugin week which has by now become traditional. The period in-between releases seemed to be the perfect time for our developers to unleash their creativity and boy, they had a ball!

We hope to arouse your interest, but be warned: some of the plugins are pretty raw, in pre-alpha state, and PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND. Do not install them in production without testing!

Being given time to put their thoughts into lines of code, our developers went really wild, and came up with a number of ideas! Prepare yourselves for the unexpected!

SonarQube Plugin

We have a lot of votes for Sonar integration in our tracker. So please welcome the initial version of the Sonar plugin! The plugin comes with the Sonar build step and a simple user interface for configuring Sonar servers. More will be added based on your feedback!

Sonar Build Step
Author: Andrey Titov
Availability: Sources on GitHub

The TeamCity Achievements plugin

A sense of humor is a sign of intelligence, and this plugin is indispensable for TeamCity as an intelligent Continuous Integration server! It’s all about challenging and motivating your developers: the plugin grants achievements to users for record numbers of various actions in the TeamCity web interface.


  • You will be bestowed the proud name of a Saboteur for bombing (i.e. muting) several tests with automatic explosion (unmute) on a specific date
  • Those disarming (unmuting) several tests, will be called brave Sappers
  • You’ll see how many Novelists you have with this achievement granted to the code contributors for extra-long commit descriptions.

Author: Pavel Sher
Availability: Sources on GitHub
Continue reading

Posted in Blogroll, Features, FYI, News & Events, Uncategorized | Comments Off

TeamCity: Beyond Continuous Integration, Webinar Recording

The recording of our June 26th webinar with Wes McClure, TeamCity: Beyond Continuous Integration, is now available on JetBrains YouTube Channel.

In this webinar, we explore the landscape of opportunities beyond Continuous Integration. See how build chains and dependencies provide a robust framework to orchestrate the benefits automation can bring, to the software you create.

The prior webinar mentioned in the recording is Getting Started with TeamCity. Wes’s slides are available on SlideShare.

Below are select questions and answers from our webinar.

Continue reading

Posted in How-To's, Partner, Tips&Tricks | Tagged , , , | 1 Comment

TeamCity: Beyond Continuous Integration, June 26th Webinar

Join us Thursday, June 26th, 15:00 – 16:00 GMT (11:00 AM – 12:00 PM EDT) for our free webinar, TeamCity: Beyond Continuous Integration with Wes McClure.

Continuous Integration is a gateway to further automation. It lays a foundation to change software quickly, with confidence. But why stop there? As we experiment with automation, we can establish techniques to further test, distribute and deliver software. Can you imagine what it would be like to focus on adding valuable features without being burdened with how they’re released to the world?

Come experiment with us as we explore the landscape of opportunities beyond Continuous Integration. See how build chains and dependencies provide a robust framework to orchestrate the benefits automation can bring, to the software you create.

Space is limited, please register now. There will be an opportunity to ask questions during the webinar.

About the Presenter:

Wes McClureWes McClure is passionate about helping companies achieve remarkable results with technology and software. He’s had extensive experience developing software and working with teams to improve how software is developed to meet business objectives. Wes launched Full City Tech to leverage his expertise to help companies rapidly deliver high quality software to delight customers. He has a strong background in using Continuous Integration with TeamCity to bring quality to the table.
Posted in How-To's, Partner, Tips&Tricks | Tagged , , , , , | Comments Off