TeamCity 2024.03: Bundled HashiCorp Vault Plugin, Untrusted Builds, and More

In version 2024.03, we’ve introduced a number of highly anticipated features. For example, the HashiCorp Vault plugin is now bundled with TeamCity. Moreover, our new untrusted builds group allows you to differentiate between changes authored by trusted users and changes from external sources.

What’s more, the newly introduced dotCover runner enables users to execute processes under code coverage profiling, merge snapshots between build steps, and generate consolidated reports across a build chain for parallel tests executed in TeamCity.

Read on to learn more about what’s new in TeamCity.

Bundled deal: the HashiCorp Vault plugin is now part of TeamCity

TeamCity has benefitted from integration with HashiCorp Vault via a plugin for a while now. Last year, we revamped the way this integration works, making it much easier to configure.

With version 2024.03, we’ve started bundling the plugin with TeamCity, making it an integral component of any TeamCity installation.

Learn more about TeamCity’s HashiCorp Vault integration in our documentation.

Optional artifact dependency

Artifact dependencies empower your build configurations to fetch files produced by other configurations or builds within the same configuration. To establish these dependencies, define artifact rules specifying which files to download and their storage locations.

Previously, if TeamCity couldn't locate files based on these rules, builds would fail with the "Unable to resolve artifact dependency" error.

Starting from version 2024.03, we're introducing a more adaptable approach to defining artifact dependencies. Now, you can configure dependencies so they are ignored in the following cases:

  • The source build doesn't exist at all (unless there are other non-optional rules).
  • The source build lacks the required file.
  • The artifact rule is based on an archive, and the archive doesn't contain the required file.

If you'd like to provide feedback on this feature, please feel free to do so in this YouTrack ticket.

For the full list of new features, please visit our What’s New page in the documentation.

More control over external pull requests with the untrusted builds group

The Pull Requests feature enables you to review code before merging it into the main codebase. Users can opt to run builds from any contributors or only from those within their organization. The former option carries security risks, potentially exposing the TeamCity server to harmful code, while the latter limits collaboration with a wider base of contributors.

In version 2024.03, we’ve introduced what we call the untrusted build group, which allows TeamCity to differentiate between changes authored by trusted users and changes from external sources.

More control over external pull requests with the untrusted builds group

The untrusted build group currently supports GitHub and GitLab. Learn more about it in our documentation.

New dotCover runner

JetBrains dotCover has been supported as a code coverage tool for .NET-related projects in TeamCity for a while now. In version 2024.03, we’ve added a new build runner to the .NET Support plugin that integrates it with the dotCover tool.

The new dotCover runner allows users to:

  • Run arbitrary processes under dotCover profiling to produce coverage snapshots.
  • Merge build-step snapshots produced by other .NET or dotCover runners.
  • Generate merged reports across a build chain for parallel tests and transform them into TeamCity custom reports.

Learn more in our documentation

.NET test retry policies in TeamCity

In version 2024.03, we’ve added new functionality to the .NET build runner. The new option will allow users to set build-wide retry policies for failed tests.

More control over external pull requests with the untrusted builds group

This feature will help address test flakiness and mitigate transient failures for integration tests.

Learn more in our documentation.

Configuration cache support in the Gradle runner

The configuration cache option in Gradle substantially enhances build performance by caching the configuration phase's result and reusing it in subsequent builds. Prior to version 2024.03, TeamCity's Gradle build runner lacked support for this feature.

In this release, we've introduced this functionality to TeamCity, bringing improved efficiency and performance to Gradle builds. Check out our documentation for information on how to enable the configuration cache option in your TeamCity setup.