TeamCity On-Premises 2024.12 Help

What's New in TeamCity 2024.12

Pipelines Merge Announcement and Major UI Changes

The first glaring change you will notice seconds after the updated 2024.12 TeamCity server starts is the redesigned UI. We replaced the top navigation bar with a sleek side menu, revamped breadcrumbs, refreshed project and configuration icons, and introduced other visual enhancements for a cleaner, more functional experience.

2024.12 UI Update

Although significant on their own, these changes are more than a visual refresh — they lay the foundation for another major upcoming change: the integration of TeamCity and TeamCity Pipelines.

Currently, TeamCity focuses on robust CI/CD for complex workflows, while TeamCity Pipelines is a user-friendly option for smaller teams that puts a high value on usability and intuitive UI. However, this separation leads us to the obvious challenges: some TeamCity users wish for the simplicity of Pipelines, while Pipelines users occasionally miss advanced features currently available only in TeamCity.

By merging these two products, we aim to eliminate this frustration and deliver a unified experience. TeamCity users will be able to choose between creating a streamlined Pipeline for quick setups or a fully customizable build configuration for advanced scenarios and complex build chains, ensuring the right level of flexibility for every user.

We encourage you to try TeamCity Pipelines now and share your feedback. Your insights are invaluable as we work to make this transition as smooth and user-focused as possible.

Learn more: Try TeamCity Pipelines | Pipelines Pulse | Pipelines documentation

Offload Your Builds to Kubernetes

In a traditional TeamCity paradigm, you should set up, maintain, and manage build agents that process builds. This applies to both cloud-hosted and local agents.

Starting with version 2024.12, you will be able to take an alternative route: offload building tasks to the K8s cluster. Set up the new integration and start building right away: our K8s executor will generate pod definitions based on build parameters and required containers and submit them to K8s cluster. As a result, your cluster will act as an orchestrator that manages builds and "agents" lifecycle.

K8S integration

Learn more: Executor Mode: Agentless Kubernetes Integration | Kubernetes connection

Partial Chain Execution

Version 2024.12 introduces two configuration parameters that accept tags and IDs of upstream builds. Doing so allows you to run a portion of your build chain.

Subchains

These parameters can be a permanent part of your configuration or occasionally added via the Run Custom Build dialog when you need to run a specific sub-chain.

In addition, we have implemented the skipQueuedBuilds service message that you can send from build steps to cancel builds of downstream configurations that are already queued.

Learn more: Partial Chain Execution

Centralized Refreshable Token Management

In recent releases, we have introduced support for refreshable access tokens across a wide range of OAuth connections. These short-lived tokens enable VCS roots, issue trackers, and build features like Commit Status Publisher to authenticate with VCS hosting providers. While refreshable tokens are a secure alternative to static tokens or username/password credentials, tracking all entities using these tokens can be challenging.

To simplify token management, we created the VCS Auth Tokens page in project settings. Here, you can view, create, and revoke refreshable tokens for your projects.

VCS Auth Tokens Overview

Additionally, we replaced the old Acquire/Acquire New buttons with redesigned controls. These updated controls allow you to copy existing token IDs from the VCS Auth Tokens page or generate new tokens right on the spot.

Edit button

Learn more: Manage Refreshable Access Tokens

Pull Request Filters

Starting with version 2024.12, TeamCity branch filters support the +|-pr: syntax. This syntax allows you to create fine-grained filter expressions that track pull requests by a number of parameters: user role, target and source branches, and more.

The new syntax is currently available only for triggers. When setting up trigger settings, click a magic wand next to the Branch Filter field to invoke an expression editor.

Filter Expression Editor

Learn more: Pull Request Branch Filters

Perforce Integration Enhancements

  • When a Perforce VCS Root is configured to check out sources by label (the Label/changelist to sync setting), TeamCity now records the revision number in a new vcsRoot.{externalId}.changelist parameter. This quality-of-life improvement enables clear identification of the synced revision.

  • The new Perforce-specific service message was added. This message allows you to manually rollback personal changes.

  • You can now build Perforce shelved changelists using the regular buildQueue REST API endpoint. Previously, this functionality was available only via a dedicated /app/perforce/runBuildForShelve endpoint.

Approve Multiple Builds at Once

TeamCity enables you to require explicit permission from designated users before starting certain builds. Approval is needed in two cases:

  • When a build configuration has the Build Approval feature to prevent accidental runs.

  • When Untrusted Builds are enabled, ensuring unverified pull request changes are reviewed before builds begin.

Previously, both options required approving each build individually within a chain. Starting with version 2024.12, clicking Approve now grants permission for all builds in the chain at once.

Approve chain

Learn more: Build Approval | Untrusted Builds

Upload Custom Kotlin Libraries

Starting with this version, you can upload custom Kotlin libraries as .jar to you TeamCity server.

Upload custom Kotlin library

To start using these libraries in your project's .kts files, add Maven dependencies to required pom.xmls.

Learn more: Add Custom Kotlin Libraries

Execute Meta-Runners Inside Containers

Starting with this version, meta-runners provide container-related settings. These settings are propagated to individual steps, meaning every individual step will be able to run inside the required Docker/Linux image.

Container settings in steps and meta-runners

If a step has its own container settings, they override the global meta-runner configuration.

Learn more: Launch Meta-Runners in Containers

AWS Integration Enhancements

AWS Cloud Profiles

Amazon EC2 cloud profiles will no longer use access keys or the default credentials provider chain, shifting to authentication through TeamCity AWS connections. This change consolidates all authentication settings into a single connection that can be shared across multiple features (cloud profiles, S3 artifact storages, AWS Credentials build feature, and so on).

Existing connections will retain legacy authentication but recommend migrating to connection-based access. New EC2 cloud profiles will support only the new authentication method.

AWS Agents Performance

We reworked the logic for AWS EC2-hosted build agents, resulting in a significant performance boost. See this blog post for more information: Enhancing TeamCity AWS Agents’ Performance.

Performance Enhancements

In this release, we've overhauled the internal logic for fetching build lists and project trees. Combined with frontend optimization, this upgrade delivers significant web vitals improvements, especially for users managing large TeamCity instances with extensive project setups.

Miscellaneous Changes

  • Both TeamCity server and agents now support Java 21.

  • EC2-hosted agents now report the system.ec2.instance-life-cycle parameter that allows you to identify whether this agent uses a spot or on-demand EC2 instance.

  • The Artifacts Migration Tool now supports migration to and from Microsoft Azure storages. This tool allows you to easily transfer build artifacts from one storage to another. Note that you need to install an unbundled plugin to set up Azure storages: Azure Artifact Storage.

  • All messages written to teamcity-server.log during a server startup are now duplicated to the teamcity-startup.log. This log ensures major boot events are logged to a separate file, which may assist in troubleshooting server startup issues.

  • The HashiCorp Vault connection no longer provides a setting that allows builds to proceed when TeamCity is unable to retrieve Vault secrets. Starting with version 2024.12, such build will fail.

  • TeamCity proxy settings are now automatically propagated to the native Git configuration (if it does not have corresponding properties already set up). Previously, you had to configure them manually. HTTP proxy settings are propagated on both agent and server sides, whereas SSH proxy settings are currently propagated only for TeamCity server.

  • TeamCity metrics set now includes new experimental metrics:

    • the log_messages metric allows you to obtain the total number of Log4j messages. This metric reports a separate number of log messages for each category (ACTIVITIES, AGENT, STARTUP, and others) and severity (INFO or WARN).

    • the persistTasks_global_settings_count and persistTasks_project_configs_count metrics report same values as the Settings Persist Status tab of the Diagnostics page. Both metrics are reported only for the main node.

Upgrade Notes

Before upgrading, we highly recommend reading about important changes in version 2024.12 compared to 2024.07.

Fixed Issues

See the TeamCity 2024.12 release notes article for the summary of implemented features and fixed issues.

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.

Last modified: 28 November 2024