+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
JetBrains TeamCity
Производитель: JetBrains

JetBrains TeamCity

Программное обеспечение JetBrains TeamCity представляет собой интегрированную среду коллективной разработки и систему управления процессом создания программного обеспечения. Решение автоматизирует и координирует основные процессы совместной разработки, включая запуск тестов, анализ исходного кода, интеграцию и надстройку кодовых изменений, заданных командой разработчиков, управление сборками. TeamCity ускоряет процесс разработки программного обеспечения и гарантирует эффективное взаимодействие между членами команды.

Supported Platforms and Environments

Platforms (Operating Systems)

TeamCity Server

Core features of TeamCity server are platform-independent. See considerations on choosing server platform.

The TeamCity server is a web application that runs within a capable J2EE servlet container.

The server requires a Java SE JRE installation to run. See notes on how to install Java on the server.

Supported Java versions are OpenJDK and Oracle Java 8 (32 or 64 bit), version 8u16 (or 1.8.0_16) or later. We recommend using the latest available version of JDK 8. Experimental Java 11 support is also provided, but we highly recommend using Java 8 instead.
Using 64-bit Java is recommended .

Note that the .war distribution is going to be discontinued, and it is highly recommended using the .tar.gz distribution which has Tomcat web server bundled. It is not advised to customize Tomcat settings unless absolutely necessary.
If you still want to use the .war distribution, note that:

  • TeamCity is tested only under Apache Tomcat 8.5+, earlier Tomcat versions are not supported.

  • TeamCity is meant to support J2EE Servlet 3.0+ and JSP 2.2+ container based on Apache Jasper.

  • TeamCity may not work properly if the Apache Portable Runtime is enabled in Tomcat due to the issues in APR.

Generally, all the recent versions of Windows, Linux and macOS are supported. If you find any compatibility issues with any of the operating systems, make sure to let us know.

The TeamCity server is tested under the following operating systems:

  • Linux (Ubuntu, Debian, RedHat, SUSE, and others)

  • macOS

  • Windows 7/7x64

  • Windows Server 2008, 2012, 2016, 2019

  • Server Core installation of Windows Server 2016

  • Windows 10 under the Tomcat 8.5+ web application server.

Reportedly works without known issues on:

  • Windows 7+

  • Windows Server 2008 R2

  • Solaris

  • FreeBSD

  • IBM z/OS

  • HP-UX

Note that Windows XP/XP x64 are not supported.

Build Agents

The TeamCity Agent is a standalone Java application.

Build agents require a Java SE JRE installation to run. See notes on how to configure Java on agents.

Supported Java versions are OpenJDK and Oracle Java 8 - 11. We recommend using the latest available version of JDK 8 (or 1.8). Support for running agents under Java 1.6 and 1.7 is deprecated.

The TeamCity agent is tested under the following operating systems:

  • Linux

  • macOS

  • Windows 7/7x64

  • Windows 10

  • Windows Server 2003/2008, 2012, 2016, 2019

  • Server Core installation of Windows Server 2016

Reportedly works on:

  • Windows XP/XP x64

  • Windows 2000 (interactive mode only)

  • Solaris

  • FreeBSD

  • IBM z/OS

  • HP-UX

Windows Tray Notifier

Windows 7/7x64/10 with one of the supported versions of Internet Explorer.

Web Browsers

The TeamCity Web Interface is mostly W3C-compliant, so just about any modern browser should work well with TeamCity. The following browsers have been specifically tested and reported to work correctly in the recent versions of:

  • Google Chrome

  • Mozilla Firefox

  • Safari under Mac

  • Microsoft Edge

  • Microsoft Internet Explorer 11+. Support for Internet Explorer 10 is discontinued since TeamCity 2018.1.4.

  • Opera 15+

Build Runners

TeamCity supports a wide range of build tools, enabling both Java and .NET software teams to build their projects.

Supported Java build runners

  • Ant 1.6-1.10. TeamCity comes bundled with Ant 1.9.11.

  • Maven versions 2.0.x, 2.x, 3.x (known at the moment of the TeamCity release). Java 1.5 and higher is supported. TeamCity comes bundled with Maven 2.2.1, 3.0.5, 3.1.1, 3.2.5, 3.3.9, and 3.5.4.

  • IntelliJ IDEA Project runner (requires Java 8)

  • Gradle (requires Gradle 0.9-rc-1 or higher)

  • Java Inspections and Java Duplicates based on IntelliJ IDEA (requires Java 8)

Supported .NET platform build runners

  • MSBuild. Requires .NET Framework or Mono installed on the build agent. Microsoft Build Tools 2013, 2015, 2017, and 2019 are also supported.

  • NAnt versions 0.85 - 0.91 alpha 2. Requires .NET Framework or Mono installed on the build agent.

  • Microsoft Visual Studio Solutions (2003 - 2015, 2017, and 2019). Requires a corresponding version of Microsoft Visual Studio installed on the build agent.

  • FxCop. Requires FxCop installed on the build agent.

  • Duplicates Finder for C# and VB.NET code based on ReSharper Command Line Tools. Supported languages are C# up to version 4.0 and VB.NET version 8.0 - 10.0. Requires .NET Framework 4.6.1+ installed on the build agent.

  • Inspections for .NET based on ReSharper Command Line Tools. Requires .NET Framework 4.6.1+ installed on the build agent.

  • .NET Process Runner for running any .NET application (requires .NET installed on the build agent)

  • NuGet runners under Windows, Linux macOS. Require NuGet.exe Command Line tool installed on the agents. Supported NuGet versions under Windows are 1.4+.
    • Windows: NuGet versions prior to 2.8.6 require .NET Framework 4.0+ installed on the build agent

    • Windows: NuGet 2.8.6 and later requires .NET 4.5

    • Linux and macOS: require Mono 4.4.2+ and NuGet CLI 3.2+ installed on the agent

  • .NET CLI (dotnet). Requires the .NET Core SDK installed on build agents.

Other runners

  • Rake
  • Command Line Runner for running any build process using a shell script

  • PowerShell versions 1.0 through 5.0 are supported.

  • Xcode versions 3-8 are supported (requires Xcode installed on the build agent)

Testing Frameworks

  • JUnit 3.8.1+, 4.x

  • NUnit 2.2.10, 2.4.x, 2.5.x, 2.6.x, 3.0.x are supported (dedicated build runner).

  • TestNG 5.3+

  • MSTest 8.x-12.x,14.x, 15.x, 19.x and VSTest are supported by the Visual Studio Tests runner; requires the appropriate Microsoft Visual Studio edition or Visual Studio Test Agent installed on the build agent.

  • MSpec (requires MSpec installed on the build agent)

Version Control Systems

  • Git (for automatic git gc support requires Git client installed on the server in order to perform maintenance of Git clones, latest version is recommended)

  • Subversion (server versions 1.4-1.9 and higher as long as the protocol is backward compatible).

  • Perforce (requires a Perforce client installed on the TeamCity server). Check compatibility issues.

  • Perforce (requires a Perforce client installed on the TeamCity server). Check compatibility issues.

  • Team Foundation Server 2005, 2008, 2010, 2012, 2013, 2015, 2017 are supported.

  • Mercurial (requires the Mercurial "hg" client v1.5.2+ installed on the server)

  • CVS
  • SourceGear Vault 6 and 7 (requires the Vault command line client libraries installed on the TeamCity server), integrated via an additional plugin

  • Borland StarTeam 6 and up (the StarTeam client application must be installed on the TeamCity server)

  • IBM Rational ClearCase Base and UCM modes (requires the ClearCase client installed and configured on the TeamCity server), integrated via an additional plugin

  • Microsoft Visual SourceSafe 6 and 2005 (requires a SourceSafe client installed on the TeamCity server, available only on Windows platforms)

For support for other VCS please check external plugins available.

Checkout on Agent

The requirements noted are for agent environment and are additional to those for the server listed above.

  • Git (git client version 1.6.4+ must be installed on the agent, latest version is recommended)

  • Subversion (working copies in the Subversion 1.4-1.8 format are supported)

  • Perforce (a Perforce client must be installed on the TeamCity agent machine)

  • Team Foundation Server 2005-2015, 2017 are supported.

  • Mercurial (the Mercurial "hg" client v1.5.2+ must be installed on the TeamCity agent machine)

  • CVS

  • IBM Rational ClearCase (the ClearCase client must be installed on the TeamCity agent machine)

Labeling Build Sources

  • Git

  • Subversion

  • Perforce

  • Team Foundation Server

  • Mercurial

  • CVS

  • SourceGear Vault, integrated via an additional plugin

  • Borland StarTeam

  • ClearCase, integrated via an additional plugin

Remote Run on Branch

  • Git

  • Mercurial

Feature Branches

  • Git

  • Mercurial

VCS Systems Supported via Third Party Plugins

  • AccuRev
  • Bazaar
  • PlasticSCM (related details)

Cloud Agents Integration

  • Amazon EC2
  • VMWare vSphere

See also details on the cloud integrations and non-bundled and third-party cloud integration plugins.

VCS Hosting Services Integration

  • GitHub / GitHub Enterprise
  • GitLab
  • Bitbucket Cloud
  • Azure DevOps Services, or formerly Visual Studio Team Services

Issue Tracker Integration

  • JetBrains YouTrack 1.0 and later (tested with the latest version)

  • Atlassian Jira 4.4 and later (all major features also reportedly worked for version 4.2)

  • Bugzilla 3.0 and later (tested with Bugzilla 5.0.1)

  • GitHub
  • Bitbucket
  • Azure DevOps Server (formerly Visual Studio Team Foundation Server – supported version 2012 or later, and Azure DevOps Services are supported)

Additional requirements are listed in Integrating TeamCity with Issue Tracker.

Links to issues of any issue tracker can also be recognized in change comments using Mapping External Links in Comments.

IDE Integration

TeamCity provides productivity plugins for the following IDEs:

  • Eclipse: Eclipse versions 3.8 and 4.2-4.6 are supported. Eclipse must be run under JDK 1.5+

  • IntelliJ Platform Plugin: compatible with IntelliJ IDEA 15.0.x - 2019.3.x (Ultimate and Community editions); as well as other IDEs based on the same version of the platform, including JetBrains RubyMine 6.3+, JetBrains PyCharm 3.1+, JetBrains PhpStorm/WebStorm 7.1+, AppCode 2.1+. See more information on compatibility.

  • Microsoft Visual Studio 2010, 2012, 2013, 2015, 2017 is supported by the TeamCity Visual Studio Add-in shipped as a part of ReSharper Ultimate. Installed .NET Framework is required.

Remote Run and Pre-tested Commit

Remote Run and Pre-tested commit functionality is available for the following IDEs and version control systems:

IDE

Supported VCS

Eclipse

  • Subversion 1.7-1.8 via Subclipse and Subversive Eclipse integration plugins or SvnKit.

  • Subversion 1.4-1.7 via Subclipse and Subversive Eclipse integration plugins.

  • Perforce (P4WSAD 2009.2 - 2010.1, P4Eclipse 2010.1 - 2015.1)

  • Git (the EGit 2.0+ Eclipse integration plugin)

  • CVS

  • ClearCase (the client software is required), integrated via an additional plugin

IntelliJ IDEA Platform *)

  • Subversion

  • Perforce

  • Git (remote run only)

  • Azure DevOps Server, or formerly Team Foundation Server (since TeamCity 2017.1, the plugin update is required)

Microsoft Visual Studio

  • Subversion 1.4-1.11 (the command-line client is required); note that 1.10-1.11 is supported since ReSharper 2018.3.

  • Azure DevOps Server (formerly Team Foundation Server – supported version 2005 or later). Installed Team Explorer is required.

  • Perforce 2008.2 and later (the command-line client is required).

*) Supported only with the VCS integrations bundled with the IDEs by JetBrains

Code Coverage

IDE

Supported Coverage Tool

Eclipse

IDEA and EMMA code coverage

IntelliJ IDEA Platform

IDEA, EMMA and JaCoCo code coverage

Microsoft Visual Studio

JetBrains dotCover coverage. Requires JetBrains dotCover installed in Microsoft Visual Studio

Supported Databases

See more at Setting up an External Database

  • HSQLDB 2.3.2
    The internal database suits evaluation purposes only; we strongly recommend using an external database in a production environment.

  • MySQL 5.0.33+, 5.1.49+, 5.5+, 5.6+, 5.7+, 8+ (Note that due to bugs in MySQL, versions 5.0.20, 5.0.22 and 5.1 up to 5.1.48 are not compatible with TeamCity)

  • Microsoft SQL Server 2005 or later (including Express editions), SQL Azure; SSL connections support might require these updates.

  • PostgreSQL 8.2 and newer

  • Oracle 10g and newer (TeamCity is tested with driver version 12.1.0.1)

Estimate Hardware Requirements for TeamCity

The hardware requirements differ for the server and the agents.

The agent hardware requirements are basically determined by the builds that are run. Running TeamCity agent software introduces a requirement for additional CPU time (but it can usually be neglected comparing to the build process CPU requirements) and additional memory: about 500Mb. The disk space required corresponds to the disk usage by the builds running on the agent (sources checkouts, downloaded artifacts, the disk space consumed during the build; all that combined for the regularly occurring builds). Although you can run a build agent on the same machine as the TeamCity server, the recommended approach is to use a separate machine (it may be virtual) for each build agent. If you chose to install several agents on the same machine, consider the possible CPU, disk, memory or network bottlenecks that might occur. The Performance Monitor build feature can help you in analyzing live data.

The server hardware requirements depend on the server load, which in its turn depends significantly on the type of the builds and server usage. Consider the following general guidelines.

Database Note:When
using the server extensively, the database performance starts to play a greater role.
For reliability and performance reasons you should use external database.
See the notes on choosing external database.
The database size requirements naturally vary based on the amount of data stored (number of builds, number of tests, and so on). The active server database usage can be estimated at several gigabytes of data per year.

Overview of the TeamCity hardware resources usage:

  • CPU: TeamCity utilizes multiple cores of the CPU, so increasing number of cores makes sense. For non-trivial TeamCity usage at least 4 CPU cores are recommended.

  • Memory: used by the TeamCity server main process and child processes (used for Maven integration, version control integration, Kotlin DSL execution). See the notes on the main process memory usage. Generally, you will probably not need to dedicate more than 4G of memory to TeamCity server if you do not plan to run more than 100 concurrent builds (agents), support more than 200 online users or work with large repositories.

  • HDD/disk usage: This sums up mainly from the temp directory usage (<TeamCity Home>/temp and OS default temp directory) and <TeamCity Data Directory>/system usage. Performance of the TeamCity server highly depends on the disk system performance. As TeamCity stores large amounts of data under <TeamCity Data Directory>/system (most notably, VCS caches and build results) it is important that the access to the disk is fast (in particular reading/writing files in multiple threads, listing files with attributes). Ensuring disk has good performance is especially important if you plan to store the Data Directory on a network drive. It is recommended to use local storage for TeamCity Data Directory/system/caches directory. See also TeamCity Data Directory.

  • Network: This mainly sums up from the traffic from VCS servers, to clients (web browsers, IDE, etc.) and to/from build agents (send sources, receive build results, logs and artifacts).

The load on the server depends on:

  • number of build configurations;

  • number of builds in the history;

  • number of the builds running daily;

  • amount of data consumed and produced by the builds (size of the used sources and artifacts, size of the build log, number and output size of unit tests, number of inspections and duplicates hits, size and number of produced artifacts, and so on);

  • clean-up rules configured

  • number of agents and their utilization percentage;

  • number of users having TeamCity web pages open;

  • number of users logged in from IDE plugin;

  • number and type of VCS roots as well as the configured checking for changes interval for the VCS roots. VCS checkout mode is relevant too: server checkout mode generates greater server load. Specific types of VCS also affect server load, but they can be roughly estimated based on native VCS client performance;

  • number of changes detected by TeamCity per day in all the VCS roots;

  • the size of the repositories TeamCity works with;

  • total size of the sources checked out by TeamCity daily.

A general example of hardware configuration capable to handle up to 100 concurrently running builds and running only TeamCity server can be:
Server-suitable modern multi-core CPU, 8Gb of memory, fast network connection, fast and reliable HDD, fast external database access.

Based on our experience, a modest hardware likeIntel 3.2 GHz dual core CPU, 3.2Gb memory under Windows, 1Gb network adapter, single HDDcan provide acceptable performance for the following setup:

  • 60 projects and 300 build configurations (with one forth being active and running regularly);

  • more than 300 builds a day;

  • about 2Mb log per build;

  • 50 build agents;

  • 50 web users and 30 IDE users;

  • 100 VCS roots (mainly Perforce and Subversion using server checkout), average checking for changes interval is 120 seconds;

  • more than 150 changes per day;

  • Kotlin DSL is not used;

  • the database (MySQL) is running on the same machine;

  • TeamCity server process has -Xmx1100m JVM setting.

The following configuration can provide acceptable performance for a more loaded TeamCity server:Intel
Xeon E5520 2.2 GHz CPU (4 cores, 8 threads), 12Gb memory under Windows Server 2008 R2 x64, 1Gb network adapter, 3 HDD RAID1 disks (general, one for artifacts, logs and caches storage, and one for the database storage)

Server load characteristics:

  • 150 projects and 1500 build configurations (with one third being active and running regularly);

  • more than 1500 builds a day;

  • about 4Mb log per build;

  • 100 build agents;

  • 150 web users and 40 IDE users;

  • 250 VCS roots (mainly Git, Hg, Perforce and Subversion using agent-side checkout), average checking for changes interval is 180 seconds;

  • more than 1000 changes per day;

  • the database (MySQL) is running on the same machine;

  • TeamCity server process has -Xmx3700m x64 JVM setting.

However, to ensure peak load can be handled well, more powerful hardware is recommended.

HDD free space requirements are mainly determined by the number of builds stored on the server and the artifacts size/build log size in each. Server disk storage is also used to store VCS-related caches and you can estimate that at double the checkout size of all the VCS roots configured on the server.

If the builds generate large number of data (artifacts/build log/test data), using fast hard disk for storing .BuildServer/system directory and fast network between agents and server are recommended.

The general recommendation for deploying large-scale TeamCity installation is to start with a reasonable hardware while considering hardware upgrade. Then increase the load on the server (e.g. add more projects) gradually, monitoring the performance characteristics and deciding on necessary hardware or software improvements. There is also a benchmark plugin which can be used to estimate the number of simultaneous build the current server installation can handle. Anyway, best administration practices are recommended like keeping adequate disk defragmentation level, and so on.

Starting with an adequately loaded system, if you then increase the number of concurrently running builds (agents) by some factor, be prepared to increase CPU, database and HDD access speeds, amount of memory by the same factor to achieve the same performance.
If you increase the number of builds per day, be prepared to increase the disk size.

If you consider cloud deployment for TeamCity agents (for example, on Amazon EC2), also review Setting Up TeamCity for Amazon EC2

A note on the agents setup in JetBrains internal TeamCity installation:We use both separate machines each running a single agent and dedicated "servers" running several virtual machines each of them having a single agent installed. Experimenting with the hardware and software we settled on a configuration when each core7i physical machine runs 3 virtual agents, each using a separate hard disk. This stems form the fact that our (mostly Java) builds depend on HDD performance in the first place. But YMMV.

TeamCity is known to work well with 500+ build agents (500 concurrently running builds actively logging build run-time data). In synthetic tests the server was functioning OK with as many as 1000 concurrent builds (the server with 8 cores, 32Gb of total memory running under Linux, and MySQL server running on a separate comparable machine). The load on the server produced by each build depends on the amount of data the build produces (build log, tests number and failure details, inspections/duplicates issues number, etc.). Keeping the amount of data reasonably constrained (publishing large outputs as build artifacts, not printing those into standard output; tweaking inspection profiles to report limited set of the most important inspection hits, etc.) will help scale the server to handle more concurrent builds.
If you need much more agents/parallel builds, it is recommended to use several nodes setup. If a substantially large amount of agents is required, it is recommended to consider using several separate TeamCity instances and distributing the projects between them. We constantly work on TeamCity performance improvements and are willing to work closely with organizations running large TeamCity installations to study any performance issues and improve TeamCity to handle larger loads.

Авторизация
Авторизация
Регистрация
Напомнить пароль