TeamCity Cloud 2021.1.x

Released: May 20, 2021

Updates in 2021.1.x


Updated Oct 8, 2021


  • Added support for OpenSSH keys. You can now upload a key to TeamCity and reuse it when configuring VCS roots or running an SSH agent during a build.
  • Added the ability to run Python step on any version (AnyPython agent parameter support).


  • Fixed a recent problem with sending email notifications that was observed on some TeamCity servers.
  • Removed the obsolete Let’s Encrypt root certificate from the TeamCity Docker images. Its presence was causing problems with Git checkout after September 30, 2021.


Updated Sep 8, 2021


  • The new tab extending AgentDetailsTab now shows in experimental UI.


  • Error loading VCS changes during server startup.
  • Build info can be split between running and finished on build overview.
  • Build may be cancelled due to S3 upload exception and restarted.
  • Python runner not fails if exception message is empty.
  • BuildStatsBar popup unstable refresh.
  • Composite build dependencies are not reused in some cases (when composite build starts before the dependency which could've been reused).
  • Obsolete revision is used by a build if branch tip revision is quite old and is already unloaded from the changes cache.
  • GitHub password authentication health report is shown even if VCS root is already fixed (via commit in DSL).
  • Kotlin Script build step fails to find maven dependency jars due to caching of the results of compilation of .main.kts script.
  • Artifacts produced by Download All are not extractable on Windows.
  • Teamcity may produce incorrect UID for the running process.
  • Tests muted by TeamCity's test retry feature should show reasonable mute info.
  • Unarchived subprojects are missing on the project overview for archived project in the Experimental UI.
  • S3ArtifactsPublisher doesn't retry when S3 responds with an internal server error.
  • Test History page. First and last bars are cut on Success Rate chart.
  • Inconsistent time presentation on the same page.
  • Expand only one test in the test tree on the build overview.
  • Perform cleanup of agent_pool_project table when some time passed since project has been removed.
  • Sometimes build log skips errors from .NET runner.
  • "All N tests" on build overview is not a link.
  • Old "muted test" icon on Build overview in the Experimental UI.
  • Cosmetic issue on the All Builds page.
  • Exception "Server health reporter failed" for Pull requests with "First attached GIT VCS root".
  • Errors on agent page if agent is gone.
  • Can't get k8s pod informations from agent with k8s plugin.
  • "Connection to "" is prohibited" on secondary node when fetching available Kotlin compiler versions.
  • Build page: other people's personal builds are excluded from dependencies count.
  • Broken "Resume build queue" action in the health report.
  • Endless triggering in a branch in case of per-checkin trigger with "Trigger a build on changes in snapshot dependencies" option disabled.
  • Unified diff created by mercurial cannot be used as a personal build patch.
  • Time in "Last message from the agent was received on:" on build overview is not refreshed.
  • Broken expanded build presentation in the experimental UI.
  • FinishBuildTrigger collects changes way too long when starting a build.
  • Too big count in REST API calls on the agent and builds history tabs.
  • Install venv to linux docker agent images.
  • Detecting Visual Studio 2022 preview versions.
  • Two security problems have been fixed.
  • Add build problems about compilation errors from .NET runner.
  • Customized parameter dropdown should sort the list of parameters.


Updated Aug 2, 2021


  • Running a build as personal via custom run dialog should now run all dependent builds as personal as well.
  • Added a shortcut for the Next button in build log search.
  • Python detection logic: Added the ability to use a custom path/override auto-detected instance.
  • Added 'This build is hanging' message on the build overview page.
  • Dependencies Chain: Added information about reused builds from previous chain.
  • Performance Monitor should now show the build log section for selected time period.
  • Added a README with the build agent download.
  • PerfMon: You can now show build log with 'before' messages.
  • You can now report PerfMon in build runtime.
  • Performance Monitor should now publish data for canceled build.
  • Added the ability to filter build parameter tab to show only customized parameters.
  • Added an experimental ability to fetch all branches available in remote on each fetch instead of fetching current state.
  • Added automatic auto-detection of python tests as "pytest" command, not "file".


Updated Jun 18, 2021


  • Specify timeout for Docker stop command in build configuration parameters.
  • Agent pool page: reimplement agent pool projects tab with GraphQL.
  • Gradle runner should now warn that enabling "Debug" can add sensitive information to Build Log.
  • Now respects "branch" config from .gitmodules during agent checkout with mirror.
  • Two infinite running build steps will now ignore build timeout policy.
  • Hide VCS roots used in archived projects only on Project - VCS roots page in admin area.
  • REST API: make /app/rest/server/licensingData available for anyone who can authorize agents.


  • Do not auto-detect "IntelliJ IDEA Project" build steps if project does not contain JVM-based modules.
  • Build log: new line characters between time and message when copying part of the log.
  • Move "Save anyway" button from main settings form to "Save" dialog.
  • Docker wrapper can hit the rate limit on dockerhub when pulling busybox in a large enough installation.
  • There is no information on the pool page that project also relates to other pools.
  • Agent pool page: move "archived projects" counter to the checkbox.
  • Consider expanding Inspections/PR/... section by default on a build page in the experimental UI.
  • How to sort dependencies in Teamcity.
  • Configure sidebar: No way to reset an order of the Root subprojects.
  • Confusing presentation of the failed to start build.
  • Remember the chosen grouped tests mode on the build overview page.
  • Improve empty pool page in the experimental UI.
  • Node.js runner: improve autodetection for eslint tool.
  • Build page: "Select all" action in the tests list looks too similar to test lines.


Updated May 20, 2021


Improved Building and Testing:

  • Kotlin script build runner - Added new Kotlin script build runner. It is cross-platform, supports importing external libraries and can be used in most places where you currently use the Command Line build runner.
  • Node.js build runner - Added a new Node.js build runner that provides first class support for building your web applications. It supports npm and yarn, can work with public and private registries and automatically detects build steps based on package.json. Just like with all other build runners in TeamCity, you can run your builds inside a Docker container and set them up using a Kotlin-based configuration.
  • Thread dumps for Docker-based builds - You can now view thread dumps of Java processes running in Docker containers on any operating system. For Linux-based Docker containers, you can also see the list of other running commands and their parameters.
  • In addition to the new Kotlin and Node.js build runners and thread dump viewing improvements, this new version features improved ReSharper Inspections and Duplicates Finder build runners which are now cross-platform and can run in Docker.

Improved Perforce integration:

  • Improved commit hooks setup - You can now set up commit hooks and have your builds automatically triggered by installing only one single script on the Perforce server.
  • Perforce workspace cleanup - TeamCity now provides manual and automated clean-up of the Perforce workspaces created by the TeamCity server.
  • ChangeView specification support - You can now limit the VCS root scope to particular revisions with the use of the ChangeView specifications. Usage of the @revision syntax in the import statements of Perforce stream definitions is now also supported.

Hardening the security of your CI:

  • Greater security with improved access tokens - This release allows you to generate access tokens that are limited in time and scope. You can now grant scripts, that interact with the TeamCity API, just enough rights to do their job, without the fear of giving them too much power. You also no longer have to remember to revoke their access after they finish.
  • Separate permission for personal builds with patches - TeamCity now has a separate permissions for running personal builds with custom patches. This helps you ensure that all code executed on build agents is authored only by trusted users.

Improved configurability:

  • Trigger-defined parameters - Your build triggers can now define custom parameters to enable or disable build steps, or change what happens inside your build scripts. For example, your nightly builds can now be different from the builds triggered by version control check-ins, all within the same build configuration.
  • Git shallow clones - You can now enable Git shallow cloning and check out the latest version of source code with depth=1, without creating local Git mirrors. This will be particularly useful for companies that spin up clean, short-lived build agents in the cloud for every build.
  • Multiple VCS triggers support - You are no longer limited to only one VCS trigger per build configuration. TeamCity now allows adding multiple triggers with different rules and with different branch filters.
  • Disabling UI editing - Added a new option that will allow administrators to prohibit editing project configurations through the UI if they are set up using Kotlin.

Improved availability:

  • Switching main node responsibility in runtime - To allow for high availability and minimize the downtime during maintenance, TeamCity 2021.1 introduces the new “Main TeamCity node” responsibility that can be transferred to a secondary node in runtime. When you do it, the secondary server becomes the main node and automatically receives all of the main node’s responsibilities, including processing builds and managing build agents.
  • Controlling the number of builds on secondary nodes - TeamCity now allows you to define the share of builds that will be processed by its nodes. This helps you make sure that every server takes just the right amount of the build processing load and doesn’t exceed its hardware capabilities.
  • Elastic-based search - Previously, every TeamCity node had its own search index that was stored locally. This release provides an alternative search engine based on Elasticsearch. It has a distributed index, consumes less disk space and works more efficiently in multi-node installations.

Improved Sakura UI:

  • Improved the Sakura UI, making it faster, easier to use and supporting all workflows from the classic UI. This new version brings a UI Assistant that shows new users how to navigate around the interface, improvements to the Build Status widget, updates to the Build Overview page, project hierarchy views, and more.