TeamCity Plugin Development Help Help

Developing TeamCity Plugins

TeamCity functionality can be significantly extended by custom plugins. TeamCity plugins are written in Java (any JVM-based language like Kotlin or Groovy can be used), run within the TeamCity application and have access to internal entities of the TeamCity server or agent.

Aside from this documentation, refer to the following sources:

If you need more information or have a question regarding the API, please do not hesitate to post your question into TeamCity Plugins forum. Use the search before posting to avoid possible duplication of discussions.

Consider making your plugin public and submit it to the TeamCity plugins repository.

Please refer to corresponding section for further details.

Plugin Quick Start

To quickly create your first plugin with Maven, see Getting Started with Plugin Development. For more details, refer to the section Developing Plugins Using Maven featuring a Maven archetype supported by JetBrains.

You may also find Gradle TeamCity plugin useful, which supports agent and server-side plugins, and helps to download, install a TeamCity server, perform tasks to deploy, start and stop the server and agent.

Bundled Open-Source Plugins

The following plugins bundled with TeamCity are developed by JetBrains and are open-sourced under Apache 2.0 license.

REST API

Exposes the TeamCity API via REST.

Sources on GitHub | REST API Documentation

XML Test Reporting

Allows TeamCity to parse XML-based report files produced by external tools and display these reports as build results.

Sources on GitHub | TeamCity Documentation

Git VCS Support

Adds Git support.

Sources on GitHub | TeamCity Documentation

Build Queue Priorities

Allows you to set priorities for build configurations.

Sources on GitHub | TeamCity Documentation

Swabra

Allows you to clean files created during a build.

Sources on GitHub | TeamCity Documentation

PowerShell Runner

Runs PowerShell scripts.

Sources on GitHub | TeamCity Documentation

Shared Resources

Allows you to limit the number of running builds that use the same shared resource (for example, an external database or a server with a limited number of connections).

Sources on GitHub | TeamCity Documentation

Queue Manager

Allows users with corresponding permissions to pause and resume build queues.

Sources on GitHub | TeamCity Documentation

Commit Status Publisher

Allows TeamCity to automatically send build statuses of your commits to an external system (GitHub, GitLab, Azure DevOps, Bitbucket, and others).

Sources on GitHub | TeamCity Documentation

VMware vSphere Cloud

Allows you to host TeamCity build agents on VMware vSphere/vCenter cloud. Cloud-hosted agents are created, started, stopped, and deleted depending on queued builds.

Sources on GitHub | TeamCity Documentation

Investigations Auto Assigner

Allows TeamCity to automatically assign investigators for build problems and test failures.

Sources on GitHub | TeamCity Documentation

Last modified: 10 October 2023