TeamCity On-Premises 2023.11

Released: Nov 28, 2023

2023.11 での更新項目

機能

Matrix Build

  • In TeamCity, you can leverage build parameters to replace raw values across build scripts, configuration/project settings, command-line arguments, and so on. Normally, each a parameter stores only one value. Starting with this release, you can add the Matrix Build feature to your configurations to specify a range of possible parameter values.
  • Adding multiple parameters, each with its own set of values, forms a matrix. TeamCity will run a build for each cell of this matrix, and report the results to the Overview page that allows you to identify at a glance which parameter/value combinations are failing.
  • The Matrix Build feature offers multiple pre-configured options that allow you to quickly set up your build configuration so that it runs in environments that differ by the installed operating systems, default Java versions, and architectures.

Amazon Web Services Integrations

  • EC2 Plugin Update - The Amazon EC2 integration plugin has been overhauled. Apart from a refreshed look, the updated plugin features the following enhancements:
    • You can now create images that utilize Mac AMIs. Mac VMs can be run only on dedicated Mac Mini hosts that should be booked for at least one day. Using the updated TeamCity EC2 plugin UI, you can now specify tags to locate a suitable host.
    • Can now specify multiple instance types for a cloud image.
    • The Subnets field now accepts multiple values, which allows you to specify different sets of incoming and outgoing traffic rules.
    • The new Image priority setting allows you to range cloud images. When TeamCity needs to spin up a new cloud agent, it will prioritize an image with the highest priority number (given that this image has not yet reached its active agents limit).
    • TeamCity can now automatically choose Regions or Availability Zones in which your spot requests are most likely to succeed based on their spot placement scores.
  • S3 Plugin Update - This release ships an updated S3 plugin that features the following enhancements:
    • Intuitive and streamlined UI designed with both Amazon S3 buckets and S3-compatible storage (such as MinIO, Backblaze B2, and others) in mind.
    • Support for buckets with enabled Transfer Acceleration.
    • Hassle-free setup with the reduced number of settings. All connection-related properties are now retrieved from a selected AWS Connection. The AWS region is automatically obtained from the selected bucket.
    • The ability to disable integrity verification that TeamCity carries out by default for all custom S3 storage.
  • AWS Connection Improvements - Added new 'Available for sub-projects' and 'Available for build steps' settings in AWS connections which allow you to ensure these connections are not used by unwanted TeamCity projects and features (for example, AWS Credentials).

VCS Integrations

  • GitHub
    • Seamless GitHub App Registration - Introduced new type of connections to GitHub and GitHub Enterprise. These connections utilize GitHub Apps, instead of the traditional OAuth-based access to repositories. Starting with this release, you will be able to create these connections much faster, without manually setting up and registering new apps in GitHub. Choose the Automatic creation mode in the Add connection dialog and TeamCity will do the rest.
    • Refreshable Tokens - You can now issue refreshable access tokens for GitHub App connections.
  • JetBrains Space
    • Automated Connections - Introduced the updated hassle-free way to set up integrations between TeamCity and JetBrains Space projects. Instead of manually creating, setting up, and installing Space applications that grant TeamCity all required permissions, you can now delegate this routine to TeamCity. The updated integration utilizes two types of connections:
      • Organization connection - Creates a basic Space application that allows TeamCity to retrieve the list of projects in your organization and create new Space applications.
      • Project connections - Use the parent organization connection to create applications that allow TeamCity to access individual Space projects.
    • Automatic Status Publishing - Starting with this release, TeamCity build configurations that target JetBrains Space repositories do not require a configured Commit Status Publisher build feature to post build-related updates. Set up a TeamCity project via a predefined Space connection and build statuses will be posted automatically. The option to manually set up the Commit Status Publisher feature is still available for those who wish full control over the process, as well as for custom setups where TeamCity is unable to publish build statuses automatically.
    • Refreshable Tokens - You can now issue refreshable access tokens for JetBrains Space connections.
  • Perforce
    • Reusing Sources on Cloud Agents - You can now reuse sources that are present on (or copied from) persistent storage mounted to your cloud agents. In previous versions this behavior was not possible for Perforce builds running on new agent machines.
    • Perforce Helix Swarm Enhancements - Overhauled the "Perforce Helix Swarm" publisher of the Commit Status Publisher build feature. TeamCity can now utilize workflows and tests that already exist in your Swarm setup (instead of creating its own tests). In addition, the Publisher no longer requires credentials of a user with administrator access.
  • GitLab
    • Commit Status Publishers and Pull Requests features that target GitLab repositories can now utilize refreshable application tokens to pass the authentication.
  • Bitbucket Cloud
    • Pull Requests features that track Bitbucket Cloud repositories have two new Authentication Type options:
      • Refreshable access tokens issued via corresponding OAuth connections.
      • Permanent access tokens issued for a specific repository, project, or workspace.
  • Bitbucket Server and Data Center
    • The Pull Requests feature can now utilize refreshable OAuth tokens to access repositories on Bitbucket Server / Data Center.
  • Azure DevOps
    • The Commit Status Publisher and Pull Requests build features can now pass authentication using refreshable tokens obtained from configured TeamCity connections.

.NET

  • Build agents now report the DotNetWorkloads_<version> parameter that returns all .NET workloads installed on the agent machine. The .NET runner now provides the Excluded test assemblies setting for the vstest command. This field allows you to specify paths to files the command should ignore. If your builds run a large amount of parallel tests in each batch, TeamCity can automatically switch to an alternative test filtering mode that reduces potential performance issues.

Schedule Custom Builds

  • You can now set a specific date and time when a build should run.

Build Cache

  • The new Build Cache feature allows configurations to cache files required by builds (for instance, downloaded npm packages) and reuse them in consecutive builds. This technique assists build agents in offloading excessive operations and can significantly speed up your building routines. In addition to sharing caches with its own future builds, a configuration that caches files can pass them to other build configurations within the same project.

Agents with Bundled JDKs

  • Starting with this release, you can build distributions of TeamCity agents bundled with custom JDKs. These distributions allow you to install both an agent and a JDK it requires to operate in one go.

Versioned Settings: Load Additional Settings From a VCS

  • Starting from this release, TeamCity can load custom snapshot dependencies, VCS roots and checkout rules from settings stored in a version control system. As a result, you now have even more flexibility to edit versioned settings and create custom branches with settings that significantly differ from those in default/stable branches.
  • When detecting these previously ignored settings, TeamCity dynamically creates required hidden entities (such as virtual build configurations) that are in effect only for the current build and remain hidden for other revisions/branches that use different settings.

Access Parallel Builds' Artifacts from a Primary Build

  • When you run a build configurations that employs the Parallel Tests build feature, TeamCity splits a build into batches interconnected in an automatically generated chain. In previous versions, artifacts produced during such builds were published in these individual batch builds, while a parent build had none.
  • Starting with this release, artifacts produced by batch builds are aggregated in the Artifacts tab of a main build. You can also use the teamcity.build.parallelTests.currentBatch parameter to arrange artifacts produced by batch builds into different directories.

Step Statuses and IDs

  • Starting with this release, you can specify IDs for your steps (similarly to project and configuration IDs).

Additional ReSharper Plugins for the Inspections Runner

  • The Inspections (ReSharper) runner now features the R# CLT Plugins field that allows you to add your favorite ReSharper plugins (such as StyleCop, CleanCode, or Unity Support) downloaded from JetBrains Marketplace or installed from a local storage.

Service Messages

  • Added the new service message which allows you to track the contents of the given file and echo new lines to the build log.

REST API

  • Move Configurations - You can now send a POST request to the following endpoint to move a build configuration to another project: /app/rest/buildTypes/<BuildTypeLocator>/copy?<Target_ProjectLocator>.
  • Wind Down Cloud Instances:
    • Previously, you could send the DELETE request to a running cloud agent to terminate it. Starting with this version, you can stop cloud instances via POST requests to the following endpoints:
      • /app/rest/cloud/instances/<cloudInstanceLocator>/actions/stop.
      • /app/rest/cloud/instances/<cloudInstanceLocator>/actions/forceStop.
    • Use the ...actions/stop endpoint to issue a "soft" stop request: if the target agent is currently busy, it will stop after the build finishes.
    • The ...actions/forceStop endpoint allows you to stop a cloud instance even if it is busy.

Sakura UI and UX Enhancements

  • Reworked the Agent Parameters tab. You can navigate to this tab when viewing any TeamCity agent to instantly check this agent's configuration and environment parameters and system properties.
  • You can now bookmark required agent pools to easily access them from the top of the agents and pools list.
  • The Dependencies Tab now displays a find panel that allows you to search for specific dependent builds by configuration names.
  • The Interactive Agent Terminal introduced in version 2023.05 now opens in a panel docked to the bottom of an agent details or build results page. You can move it to a separate browser tab by clicking Open in a separate tab.
  • Performance Monitor now shows absolute values of the consumed/total agent memory.
  • You can now switch Build Log timestamps from absolute values to relative to quickly analyze how long it took the build to reach a specific stage.
  • You can now view and copy connection IDs from the Connection pages in TeamCity UI. This minor enhancement facilitates writing Kotlin DSL code for objects that utilize connections: AWS Credentials features, Docker Support, S3 artifact storage, AWS connections that use other connections, and so on.
  • Cloud images' Build History tab now displays a search box that allows you to find all builds of a specific cloud agent, even if this instance is no longer available.
  • The navigation bar now paints the changes indicator bold for favorite projects with changes from the current TeamCity user.

Miscellaneous

  • The DslContext object now exposes a string serverUrl property that allows you to get the URL of a TeamCity server in Kotlin DSL code.
  • TeamCity distributes agents more effectively and processes large build chains with failing builds faster. Starting with this release, dependent builds whose "On failed dependency" condition is "Make build failed to start" no longer wait for an available agent when their dependencies fail or are canceled. Instead, the dependent build's status changes to "Failed to start" as soon as possible, and TeamCity proceeds to the next build in the chain.
  • The Commit Status Publisher build feature now correctly publishes build statuses for configurations that target refs/(merge-requests/*)/head branches of GitLab repositories (the "merge result" branches). Previously, running TeamCity builds for merge result revisions caused the Publisher to encounter HTTP 404 errors.
  • If users log into TeamCity using credentials of an external 2FA-protected service, TeamCity does not send additional 2FA requests.
  • You can now add the dateFormat=<value> parameter to URLs used by your log analysis tools to retrieve build logs.
  • In addition to builds_queued, builds_started, builds_running and builds_queued metrics, TeamCity now reports an experimental builds_detached metric that allows you to view the number of builds detached from their agents.