What's New in TeamCity 2024.07
Custom Location for Versioned Settings
When you enable synchronization on the Versioned Settings page in your project settings, you can now specify a custom location for your remotely stored Kotlin DSL scripts and XML settings.
This flexibility is especially beneficial for teams working with monorepos. It allows multiple standalone TeamCity projects to target the same repositories without conflicts, by storing project settings in different custom directories instead of the default .teamcity
folder.
Additionally, this feature enables you to organize the versioned settings of all your projects in a single repository. This streamlined approach simplifies DSL script maintenance and enhances security by keeping configuration files separate from your main codebase.
Learn more: Storing Project Settings in Version Control Systems
VCS Intergration Enhancements
New GitHub Checks Webhook Trigger
Version 2024.07 extends the collection of build triggers with a new trigger designed exclusively for GitHub-facing build configurations set up via TeamCity GitHub App connections.
The new trigger is an all-in-one solution that implements a two-way GitHub-TeamCity integration: TeamCity configuration runs a build for all pushes, no matter how frequently they occur, and communicates the build result status back to GitHub. With this trigger in place, you no longer need to configure the standard VCS trigger or Commit Status Publisher.
Learn more: GitHub Checks Webhook Trigger
Non-Recursive Submodule Checkout
The Submodules setting of Git VCS roots allows you to choose whether TeamCity should check out submodule repositories referenced by your main repo. The "Checkout" option corresponds to the recursive checkout process, making TeamCity fetch the entire hierarchy of repositories.
The new "Non-recursive checkout" option added in this version allows you to limit the depth of submodule hierarchy by 1. In this mode, TeamCity checks out only those submodules directly referenced by the main repository. Lower-level repositories referenced by submodules are ignored.
Learn more: Git General Settings
Security Enhancement for TeamCity Connections
Following our commitment to identify and eliminate security vulnerabilities, we have added the new Enable unique callback/redirect URL setting to the following TeamCity connections:
Azure DevOps OAuth 2.0
Bitbucket Server/Data Center
GitHub App (manual)
GitHub Enterprise
GitLab CE/EE
JetBrains Space (manual)
This setting adds a unique string to callback/redirect URLs required to configure OAuth integration with version control systems. Using unique URLs prevents attackers from implementing a malicious authentication server that mimics a real one — the technique used in potential mix-up attacks that trick client applications into leaking VCS authentication codes.
The Enable unique callback/redirect URL setting is enabled by default for all newly created OAuth connections. If you wish to enable it for your existing connections, remember to update the modified URL on the VCS side.
Learn more: Configuring Connections
Upload SSH Keys from the Create Project Page
When you create a new project from an SSH URL, TeamCity shows a list of available SSH keys. Starting from this version, you can upload new keys directly from this page.
This minor enhancement streamlines the workflow by eliminating the need to upload keys in advance from the SSH Keys page.
Learn more: Upload SSH Keys to TeamCity Server
Sakura UI: Problems Page Redesign
We have overhauled the Problems tab of the Project Home Page to simplify the user experience and facilitate build failure investigation and resolution workflows.
In futher release cycles, we expect to update other UI elements related to browsing, investigating, muting, and fixing build problems.
Learn more: Working with Build and Test Failures
NUnit and NAnt Runners Deprecation
Version 2024.07 introduces an updated NUnit runner that, compared to the legacy runner, does not allow you to select a .NET Runtime or .NET Framework version. If needed, use the Additional command line parameters field to specify these settings. In addition, the updated runner no longer supports outdated NUnit 2.x.x versions.
In version 2024.07, both updated and legacy runners are fully functional and available from the Build Steps page. In the following release cycles we expect to unbundle the legacy runner and move it to a separate plugin. When it is done, you will need to manually install this plugin from JetBrains Marketplace to continue using the legacy runner. As such, we recommend migrating your projects to either updated NUnit or regular .NET runners.
Additionally, we are deprecating the NAnt runner. Unlike NUnit, it has no updated counterpart and will only be available via a separate Marketplace plugin once unbundled.
Miscellaneous Changes
The list of statistic values reported by TeamCity now includes the AllTestsDuration value.
The database connection setup wizard that pops up during the first TeamCity server launch now installs the following JDBC drivers depending on the selected database type:
MySQL database file:
mysql-connector-j-8.3.0.jar
MS SQL server:
mssql-jdbc-12.6.0.jre8.jar
andsqlserver12-win-auth.jar
for authentification.PostgreSQL:
postgresql-42.7.1.jar
The backslash character (
\
) is now the default escape symbol that allows you to use special characters in feature branch specifications. This symbol was commonly recommended as an escape symbol in TeamCity documentation and support tickets, and you might already have branch specifications that look like the following:#! escape: \ +:release-\(7.1\)This first line is no longer required and can be safely removed, but your existing specifications will remain valid even if you don't.
TeamCity now supports Perforce depots mapped to multiple workplace locations (the ditto mapping).
The VCS Labeling build feature now allows you to specify a string that should be written to the description field of Perforce labels.
Roadmap
See the TeamCity roadmap to learn about future updates.
Your Feedback Matters
We place a high value on your feedback and encourage you to share your thoughts and suggestions. See this link for more information: Feedback.