Skip to end of metadata
Go to start of metadata

TeamCity Versioning Changes

Starting from the year 2017, TeamCity adopts the common JetBrains versioning scheme that identifies versions by year, following the pattern: “<year>.<number of the feature release within the year>.<bugfix update number>”. Hence, we’ll be releasing TeamCity 2017.1, formerly known as TeamCity 10.1.

Faster Server Startup

During the server startup, several time consuming actions are now performed in parallel; in addition to that, the server warms up pages for faster display.

Cloud Profiles

Now TeamCity Project administrators can configure cloud profiles for their projects without bothering System administrators: configuration of Agent Cloud profile was moved from the server level to the project level. 

When configuring a cloud profile, the project administrator can select an agent pool to assign the cloud agents to: it is possible if the pool contains this project and/or its subprojects only. Pools containing projects other than the current one and its subprojects will not be available for assignment.  If the assigned pool is changed in future so that the criteria is not met or if the agent pool is not specified, the cloud agents will be assigned to a special read-only pool containing only this project and its subprojects.

The idea is to restrict the cloud agents pool only to a given project with its subprojects to track cloud costs by project.

Note that if you use Kotlin DSL for your TeamCity Root project settings, you need to update your DSL as described in the DSL Upgrade document.

Ability to Enable/Disable Cloud Integration

It is now possible to enable or disable integration for a project and/or its subprojects via the TeamCity web UI:

Visual Studio Team Services Connection

TeamCity now allows creating build configurations, VCS roots and issue tracker to connect to VSTS with just several clicks, the same way it is available for GitHub or Bitbucket Cloud.

Several VSTS connections can be configured. In this case the server URL will be displayed next to the VS icon to distinguish the server in use.

The connections support personal authentication tokens with All Scopes.

Web UI Improvements

Breadcrumbs

Breadcrumbs have been redesigned - the breadcrumb trail is displayed in a smaller font compared to the large font of the current item title. Hovering over the icon next to the title displays an arrow, prompting to click for quick sibling navigation:

New Fast Selectors

The new TeamCity version boasts of new selectors, such as branch selector in various places in the UI and the build configuration selector on the Dependencies page for a build configuration:

The new selectors ensure better performance with a large number of build configurations  and branches.

Build Chains Preview

The Snapshot dependencies section on the Dependencies page for a build configuration now allows previewing the build chain and its configuration:

The preview shows builds of the chain; the builds with automatic triggering configured are marked with the icon:

Also, the dependencies tabs allow grouping/ungrouping builds by project and highlighting the builds reused from previous chains (suitable builds).

Redesigned Pages

  • the startup pages, the login, register user, administrator setup, user profile and edit group pages have been revised

  • the Create Project / Build Configuration pages were renewed

  • The Build Chains tab now:

    • provides a more compact representation of chains. Previously, if several top builds triggered the same chain of dependent builds, TeamCity displayed several build chains. Now only one build chain is displayed with several “top builds”.

    • has additional display options: “Group by projects” and “Hide details”.

    • transitively highlights all the downstream/upstream builds when a build is selected in a build chain.

 

Disable Building in Default Branch

The Display settings section of the VCS Root checkout options for a build configuration has been renamed into Changes calculation settings (1). A new section, Default branch settings (3), has appeared. By default, TeamCity will run builds in the default branch. If this behavior is undesirable, you can uncheck this box and the default branch will not be shown in the UI. This can be useful if you want to build pull requests only.

Note that unchecking the option will affect all the aspects concerning the default branch, including:

  • build chains: if a chain is triggered in a branch, and this branch does not exist in one of the configurations that is a part of the chain, previously TeamCity fell back on the default branch. If the default branch in this configuration is not allowed, building the dependency will fail

  • the behavior of the Run dialog: the run custom build dialog will be displayed asking to select a branch

  • triggers and notifications.

Storing Secure Settings Outside Other Settings Files

In this version a new option was added to the Versioned Settings page to store passwords, API tokens, and other secure settings outside of VCS. This option is enabled by default if versioned settings are enabled for a project for the first time, and not enabled for projects already storing their settings in VCS.

If this option is enabled,TeamCity stores some random generated strings in xml configuration files instead of scrambled passwords.  Actual passwords are stored on the disk under TeamCity data directory and are not checked into the version control system.

Generating Tokens

For projects with this option on, it is also possible to generate token for some password via the "Generate Token for password" action available in the Project -> Actions menu. This action can be useful when project settings are generated via DSL (because the UI is disabled in this case) or if someone wants to change the password not via the user interface, but via a commit into VCS.

For now passwords are not inheritable by projects hierarchy. If a setting in a project - VCS root, OAuth connection, cloud profile - requires a password, the token generated for this password can be used in this project only. For instance, it is not possible to take a generated token and use it in a similar setting in a sub project. A new token should be generated in this case.

News on Installing Tools Centrally on Agents

Now you can easily distribute to/ remove from all agents different versions tools centrally using the Administration | Tools page. The page displays the installed versions of the tool, the tool usages in build configurations,  bundled versions and the default one. You can install other versions and change the defaults.

dotCover

The JetBrains dotCover Command Line Tools are now displayed on the Administration | Tools page with the bundled version is set as default. There’s no need to wait for a new TeamCity release with a newer dotCover version: you can install new versions of dotCover yourself and change the defaults.

Maven

The Administration | Tools page displays all the bundled versions of Maven, with 3.0.5 set as default. You can install the version you need and change the default Maven version for all agents.

IntelliJ Inspections and Duplicates Engine

The Administration | Tools page displays the installed versions of  the JetBrains IntelliJ Inspections and Duplicates Engine with the bundled version is set as default. You can install a newer version than the bundled one and change the defaults.

Improved Build Failure Conditions

  • You can now stop a build on exceeding a certain build metric specified using the Fail build on metric change condition.

  • On encountering a specified text in the build log, you can opt to stop the build immediately.

Redefining Features Inherited from Template

TeamCity now supports overriding of the following features defined in a template:

  • build triggers

  • build features

  • failure conditions

Enforcing Clean Checkout for Build Chain

A new option in the schedule trigger and the custom run dialogue allows you to clean all files in the checkout directory before a build. If applied to snapshot dependencies, all the builds of the build chain will be forced to use clean checkout.

The option also enables rebuilding all dependencies (unless custom dependencies are provided via the custom build dialog or the schedule trigger promotes a build).

Partial Build Log Display

When opening large build logs, TeamCity now displays a part of it to avoid browser hanging. The configurable display threshold is set to 7M characters by default. You can view the full build log on clicking the corresponding link.

Cross-Platform PowerShell

Starting from this release, TeamCity provides support for PowerShell on Linux and Mac OS. To use it, download a PowerShell package for your platform and install it on the TeamCity agent.

Proxy Server for Agent-to-Server Connections

If a TeamCity agent and the server are placed in different company networks or if an agent is in a high security network partition of the same network as the server,  it is now possible to configure a forward proxy server for agent-to-server connections.

REST API

  • Retrieving all artifact dependencies for a build and a build configuration is now supported via the “artifactDependency” locator dimension

  • The Swagger definition for the REST API is available under the .../app/rest/swagger.json URL

Artifacts Storage Pluggability

TeamCity stores artifacts produced by builds on the server's file system. Starting from version 2017.1, TeamCity provides a way to write plugins which can implement alternative artifacts storages.
Note that TeamCity internal artifacts (including build logs) will still be published to the TeamCity server.

As an experimental plugin providing an example of this functionality Amazon S3 artifact storage is implemented. The plugin allows storing artifacts on S3 providing seamless integration with the majority of TeamCity artifacts-related features.

NuGet Support Improvements

Integration with NuGet has been improved and includes:

  • Support for Linux and Mac OSX when Mono is installed on the agent. The plugins are fully functional with NuGet 3.2 and later

  • Numerous bug-fixes in the NuGet feed

  • Support for publishing of NuGet packages to TeamCity from the NuGet Publish build runner.

Commit Status Publisher Improvements

Publishing status of TeamCity builds to external systems (GitHub, Bitbucket, GitLab and Upsource) has been improved:

  • The Test Connection action in the add/edit dialog
  • Diagnostics messages and error reporting
  • Use of a configured GitHub Connection to obtain access tokens through OAuth
  • Implicit selection of a VCS root, including configuring commit status publisher in a template that has no VCS root attached
  • Support for nested groups introduced in GitLab 9

Bundled Tools Updates

  • The bundled Java has been updated to version 8u121.

  • The bundled Ant has been updated to 1.9.9

Other Improvements

  • Modifiable Build Queue Optimization: Prior to this version, TeamCity optimized the build queue by automatically replacing queued builds with an earlier started build or a more recent queued build if the builds used the same change set and the same custom properties. This default behavior can now be manually disabled via the corresponding option in the VCS Build Trigger and Schedule Build Trigger.

  • TeamCity plugin for IntelliJ-based products supports remote run from TFS now.

  • The maintainDB tool now has a new option,  -I ( which stands for 'internal'), allowing TeamCity restore into a new instance of the embedded HSQL database.

  • TeamCity now detects problems with agents upgrade and shows a health report.

  • TeamCity users can now retrieve forgotten passwords.

  • There is a handy way to quickly copy a failed test exception stacktrace to the clipboard.

  • The test name length limit has been increased to 1024 charaters.

  • CSRF protection has been implemented. If you get 403 responses for POST requests, make sure to provide credentials with the request or specify the "Origin" header.

  • TeamCity-JIRA issue tracker integration now supports automatic project ids synchronization: when configuring the connection, all project ids can be loaded from a JIRA server automatically. If a new project is added to this JIRA server, TeamCity will detect it and automatically synchronize the list of projects.

  • IntelliJ IDEA Project runner supports 'Build Artifacts' tasks specified in the 'Before launch' list of IDEA run configurations.

  • When the "Show changes from snapshot dependencies" option is used, TeamCity shows which dependent build the changes come from. On hovering over the  icon (in the Changes pop-up on the Build configuration overview page and on the Changes tab for a build) the number of the dependent build is displayed; clicking the link opens the Сhanges tab of the dependent build.

  • LDAP support for nested groups during user synchronization has been added

Fixed Issues

Previous Releases

What's New in TeamCity 10.0

 

  • No labels