TeamCity Roadmap

This page contains a list of new features that we’re actively developing or designing for TeamCity. This should give you a sneak peek of the announcements you can expect to see over the coming year.

The information on this page is updated on a regular basis. Current status of the roadmap features:

5
developing
6
designing
1
exploring
0
Available in EAP
TeamCity Cloud

TeamCity Cloud

To empower developers to create great software without the pain of installing and maintaining build infrastructure, we are working on TeamCity Cloud – a fully managed CI/CD solution that will be completely hosted and supervised by JetBrains.

Learn more

Multi-server scalability

Multi-server scalability

Running multiple TeamCity servers and making them work together can elevate your CI/CD to a whole new level of performance and reliability. We are improving how TeamCity works in a clustering environment by extending the capabilities of secondary servers.

Learn more

Core CI improvements

Core CI improvements

To give you greater control over your CI, we are working on a variety of new features that will make it easier to automate your DevOps pipelines and also help you to organize your development process in a more efficient way.

Learn more

Kotlin DSL

Configuration as code

We are happy that more and more users are getting into storing their CI/CD configurations as code. In the near future we are going to make the Kotlin DSL even more expressive, and add more ways to get started with it.

Learn more

Build runners and integrations

Build runners and integrations

Developers all over the world love TeamCity’s tight integrations with build tools and external services, and we take great care to support them in the best possible way. In this section you can read about new integrations that we are planning to add.

Learn more

Cloud features

Cloud features

We want TeamCity to have everything you need in a modern workflow. That’s why we are working on a range of features that will let you more easily set up and run your builds in the cloud.

Learn more

New 'Sakura' UI

New “Sakura” UI

We’re continuing our quest to create a new UI that will be fast and easy to use, and will let us deliver new features faster. Our current focus is on making the Sakura UI support all main use cases of the classic UI.

Learn more

TeamCity Cloud

Developing

Developers must have the power to create great software without having to deal with the pain of installing and maintaining build infrastructure. That’s why we are working on TeamCity Cloud – a fully managed CI/CD solution that will be completely hosted and supervised by JetBrains. It will have everything you love about the original TeamCity, and it will run your builds and tests on dedicated instances in the cloud, fully isolated from other users. For current users, we will provide a way to migrate local installations to the cloud solution.

TeamCity Cloud is currently in public beta, and we expect the public release to happen in the beginning of 2021.

Sign up for the beta

Multi-server scalability

Running multiple TeamCity servers and making them work together can elevate your CI/CD to a whole new level of performance and reliability. We are improving how TeamCity works in a clustering environment by extending the capabilities of secondary servers with new features.

Full-featured UI

Developing
For greater control over your CI, the current limited UI of the secondary server will be replaced with a full-featured version, making it possible to edit build configurations, manage cloud agents, and perform other actions that were not previously available. This will enable your team to keep working with TeamCity while the primary server is under maintenance.

Build queue processing

Designing
Our overarching goal is to make the secondary server equal to the primary server in every respect. The next stop on the roadmap will be enabling the secondary server to process the build queue and start builds.

Core CI improvements

Trigger-defined parameters

Developing

Another popular feature request that we are going to implement is trigger-defined parameters. This will give you greater control over your builds and tests, and allow you to run them differently based on what triggered them. A typical use case for this feature could be the automatic publishing of a nightly build when it is triggered by a schedule (but not by other triggers).

Intelligent test splitting

Designing

The more tests you have, the longer it takes for them to be completed. Often you find many of your build agents doing nothing, just waiting for one particular agent to finish its tests. To address this case, we are working on a new feature that will intelligently split tests into several groups of tests with similar durations and then run them on multiple build agents in parallel. This will give you your test results faster, so you can build more and wait less.

Agentless builds

Designing

TeamCity build agents combine the capabilities and versatility that no other CI has. But when they employ external tools, all of that power remains unused because they have to wait for an external job to finish. To optimize the way TeamCity works in these situations, we want to implement a new “agentless build” API that will make it possible to use external tools without relying on TeamCity build agents. All jobs made through this API will be seen as common builds in TeamCity, with their own reports, status, and history.

In version 2020.2 we’ve introduced agentless build steps. This feature allows you to execute the final steps of your builds in agentless mode, releasing the build agent and allowing it to run other queued tasks. We are now collecting feedback on this initial implementation and investigating various related scenarios with a view to design a fully agentless build implementation.

Your voice is welcome! Please describe your own use cases for how you would want to use agentless builds described above in the respective YouTrack issue.

Configuration as code

Thanks to the expressiveness of the Kotlin DSL, our users are really getting into storing their CI/CD configurations as code. We are continuing to improve it, and here are the main changes that we have planned for the near future.

Viewing project configuration as DSL

Developing

The View DSL button provides a great way to learn how to describe your build configuration in Kotlin code. Right now it is available only for build configurations, which is not very helpful if you want to write configurations for complete projects or if you are looking for the right piece of code to configure one particular thing. We are going to add similar buttons to other sections of TeamCity, so you can always find the correct way to configure your VCS roots, clean-up settings, or entire projects – as Kotlin code.

Omitting imports in DSL code

Designing

We want the Kotlin DSL to be as brief and expressive as possible. To make it easier for you to describe your build configurations in Kotlin, we will allow you to omit the imports section in the beginning of the settings.kts file. This means that settings.kts can start directly with the project {...} section and will not require you to explicitly specify imports that are required to compile the script.

Disabling UI editing

Developing

TeamCity lets you set up CI/CD pipelines in a variety of ways based on your preferred workflow. Your projects can be configured through the DSL, through the UI, or through a mix of both. However, mixing manual edits with DSL changes may lead to a lot of confusion and versioning problems. To ensure that your configurations stay predictable and easy to manage, we will add a new option that will allow administrators to prohibit editing project configurations through the UI if they are set up using the Kotlin DSL.

Build runners and integrations

Developers all over the world love TeamCity’s tight integrations with build tools and external services, and we take great care to support them in the best possible way. Below is a list of the new features that we are planning to add.

JetBrains Space

JetBrains Space

Designing

Our company has recently introduced a new product, Space – an integrated team environment that comes with a complete set of tools for modern software development. Space provides so many opportunities for integration with TeamCity:

  • Building pull requests
  • Sending notifications to chats and generating todo-list items
  • Syncing with a team directory and inheriting project permissions from Space
  • And much, much more

We are working closely with the Space team to figure out the most useful ways to integrate the two products, and we’re planning to start rolling some of those integrations out this year.

Cloud features

Persistent caches for cloud agents

Designing

Teams using TeamCity in the cloud must have the opportunity to complete their builds as quickly as if they were using local installations. Persistent cloud caches will allow cloud build agents to quickly transfer source code, build artifacts, and various packages to one another, saving a lot of time and networking costs.

(Fewer downloads is good for the planet: it saves electricity and reduces your carbon footprint. So this feature allows you to go green even as your builds go green faster.)

New licensing options

Exploring

More and more of our customers are willing to run build agents in the cloud because it lets them quickly increase capacity of their delivery pipelines when needed. However, the current licensing policy of TeamCity is restrictive for them because it requires having yearly licenses for build agents that they use only during peak times. To address this, we are going to rethink how we approach TeamCity licensing in cloud installations.

Although we have not yet figured out how to do this, we feel that it is important to announce that we are working in this direction. If you have a relevant use case, you are welcome to share it in the respective YouTrack issue.

New “Sakura” UI

Developing

CI/CD is one of the tools that most developers use every day, and we want it to feel like home. Last year we introduced a new experimental UI (codename “Sakura”), and it has really proven itself. It is fast, powerful, and modern, and we’re proud of where it stands after such a short time. The next improvements to the Sakura UI will address the following areas:

  • Mutes and investigations pages
  • Changes
  • User profile settings

Many users have asked us whether we are planning to kill the old UI.

The answer is no – Sakura UI will not replace the classic UI anytime soon. Over the next year, we are planning to focus on improving what has already been implemented in the Sakura UI until it reaches feature parity and supports all main use cases of the classic UI. This will allow us to make it a default, but even then we will keep the option to use the classic UI.

We are lucky to have the opportunity to test every small change to the UI within JetBrains. Nightly builds of TeamCity are used by dozens of teams with very different CI/CD practices, from individual developers to huge projects like IntelliJ IDEA and Kotlin. The classic UI didn’t have this opportunity: it grew naturally with the company, and was built using technologies that are now over 10 years old. It reached its limits a long time ago, and we feel that it now restricts us from delivering new features fast enough. That’s why we’re building Sakura UI, and we truly believe that it will bring a bright new future to TeamCity and to all our users.