TeamCity
Powerful CI/CD for DevOps-centric teams
TeamCity 2024.12: UI Updates, Experimental Kubernetes Executor Mode, Conditional Dependencies in Build Chains, and More
TeamCity 2024.12 introduces a redesigned UI, conditional build chains, simplified OAuth token management, and enhanced AWS and Perforce integrations.
New features also include support for custom Kotlin DSL libraries, centralized refreshable token management, and single-action build chain approvals, among others.
Conditional dependencies in build chains
In TeamCity, you can break down complex build processes into distinct stages, each executed on different build agents. These interconnected stages form what we call a build chain. A build chain is configured by creating multiple build configurations, each representing a stage, and linking them with snapshot dependencies.
Until now, every part of a build chain was expected to run or be reused from a previous run.
With TeamCity 2024.12, we’re introducing conditional dependency execution, which lets you selectively skip certain stages when a build chain is queued.
For example, imagine you’re running a large test suite where each build configuration represents a specific set of tests, like frontend tests, backend tests, and performance tests.
With conditional dependencies, you can configure your build chain to run specific builds depending on files in the VCS commit. There is no need to run your backend or performance tests if only CSS files were changed, but you still need the final deployment package at the end of your build chain.
Previously, TeamCity allowed skipping particular steps of a single build configuration. Now, whole builds can be skipped, and they won’t occupy a build agent at all.
This update enables you to create more efficient, targeted build chains by omitting specific configurations as needed.
Read more about how to configure the functionality in our release notes.
[Experimental] Kubernetes executor mode
TeamCity already offers a native integration with Kubernetes, but with 2024.12, we’re extending this functionality. Now, TeamCity can directly use Kubernetes as a scheduling and orchestrating system for your builds, thanks to the experimental Kubernetes executor mode.
Now, you can specify the task you want to run and which image you want to run it on, and Kubernetes will do everything else.
Key benefits of the integration include:
- Native Kubernetes integration: Developers and QA teams can configure their builds without diving into infrastructure details like servers or cloud providers. Meanwhile, infrastructure teams can focus on preparing familiar Kubernetes setups. TeamCity builds are executed on native K8s pods, with each step running inside its own container. This allows you to use separate Docker images for each individual build step, among other advantages.
- Faster task execution: Builds start much more quickly compared to virtual servers, enabling developers to get feedback from automated tests sooner.
- Efficient resource utilization: Kubernetes allows multiple builds to run on a single server, compactly placing workloads and maximizing resource use. With less idle time, resources are utilized more effectively. This functionality is now available in TeamCity out of the box.
Read more about the experimental Kubernetes executor mode in our docs.
UI updates: Breadcrumbs and redesigned navigation
With TeamCity 2024.12, we started updating TeamCity’s product design. The main menu now resides on the left-hand side of the screen, offering a more intuitive structure that keeps key actions and views within reach.
Breadcrumbs at the top make it simple to track your location within complex builds or pipelines so you can quickly move between projects and configurations.
This update enhances accessibility and brings a cleaner, more organized workspace that feels natural whether you’re working on a single project or managing multiple builds.
Simplified VCS OAuth token management
In TeamCity 2024.12, we’ve implemented the Project Administration tab for managing short-lived VCS OAuth tokens. This initial rollout provides essential tools to streamline token handling in the admin UI.
Our goal is to make OAuth-like tokens more accessible, enabling project administrators to view, configure, and create custom tokens with ease.
Key capabilities include:
- Token search and display: Easily search for and view tokens available to specific TeamCity projects.
- Token deletion: Remove outdated or unused tokens with a single click.
- Token details: Inspect and copy token IDs for streamlined integration, especially for Kotlin DSL usage.
- Token naming: Assign descriptive names to tokens for easier identification and organization.
- Token scope: TeamCity displays a list of projects where the token can be used.
- OAuth authentication flow: Trigger OAuth flows directly to generate and securely store new tokens.
This update also extends token functionality in VCS roots, build features, and project settings, making token management more accessible across the TeamCity interface.
Approve an entire build chain
In complex release workflows, a build chain might consist of many individual dependencies, which often require approval from a release manager.
Previously, triggering the composite configuration resulted in all dependent configurations needing separate approvals.
In 2024.12, we’re introducing the ability to approve an entire build chain in a single action. Release managers can now approve a composite build and its downstream dependencies without needing to authorize each individual configuration. This makes the release process more efficient.
Pull request filters
TeamCity 2024.12 supports pull request filters in branch filters using the +|-pr:
syntax. This lets you create detailed filters to track pull requests based on factors like author, user role, target and source branches, and more.
Currently, this new syntax is available only for triggers. To set it up, click the magic wand icon next to the Branch Filter field in the trigger settings to open an expression editor.
Perforce integration enhancements
With the latest update, when a Perforce VCS root is set to check sources by label (using the Label/Changelist to Sync setting), TeamCity now records the corresponding revision number in a new vcsRoot.{externalId}.changelist
parameter.
This enhancement improves usability by providing clear and immediate identification of the synced revision, streamlining traceability and management.
Custom Kotlin DSL libraries
TeamCity allows you to configure pipelines programmatically using the Kotlin DSL. Starting with version 2024.12, you can upload custom Kotlin libraries as a .jar file to your TeamCity server that will be available to use in your Kotlin DSL projects as a Maven dependency.
This simplifies the sharing and reuse of Kotlin DSL code between different projects.
To learn more about adding custom Kotlin DSL libraries to your TeamCity server, refer to our documentation.
AWS integration enhancements
Amazon EC2 cloud profiles will now use TeamCity AWS connections for authentication, moving away from access keys or the default credential provider chain. This update consolidates authentication settings into one connection, which can be used across multiple features (such as cloud profiles, S3 artifact storage, and AWS credentials).
New EC2 cloud profiles will support these new connections as well as legacy authentication methods, such as keys and default chain providers. Existing connections have received a reworked UI and will continue supporting legacy authentication methods, as well.
Learn more about this and other new features in our documentation.
Performance updates
In this release, we’ve revamped how build lists and project trees are loaded. Along with frontend optimizations, these changes bring major improvements to performance, especially for users with large TeamCity installations and complex project setups.
For example, some pages now load up to three times faster, based on the 75th percentile data.
If you have any questions, feel free to reach out to us in the comments below or via the support form. We’ll be happy to help!