Extensions
Extension in TeamCity is a point where standard TeamCity behavior can be changed. There are three marker interfaces for TeamCity extensions:
jetbrains.buildServer.serverSide.ServerExtension
jetbrains.buildServer.agent.AgentExtension
jetbrains.buildServer.TeamCityExtension
Extension interface implements one of these marker interfaces. ServerExtension and AgentExtension are used to mark server and agent side extensions correspondingly. TeamCityExtension is the base interface for ServerExtension and AgentExtension. Thus you can take a list of all available extensions in TeamCity by taking a look at interfaces which extend these marker interfaces.
Registering custom extension
There are two ways to register custom extension:
define a bean in the Spring context which implements extension interface, in this case your extension will be loaded automatically
register your extension at runtime in the
jetbrains.buildServer.ExtensionHolder
service (can be obtained by Spring autowiring feature)
Available extensions
Server-side extensions
Extension | Since | Description |
---|---|---|
| 3.0 | Allows to customize text status line of the build, i.e. the build description which usually contains text like "Tests passed: 234, failed: 4 (2 new)". |
| 4.0 | Similar to TextStatusBuilder but affects "Triggered by" value shown in the UI. |
| 4.0 | This extension allows to apply custom formatting to test stacktrace to be shown in the UI. |
| 4.5 | Allows to define preconditions for build starting on an agent, that is, you can instruct TeamCity to delay build till some condition is met. |
| 2.0 | This extension is called when cleanup process is going to finish, plugins can clean their data with help of this extension. |
| 2.0 | This extension is called when cleanup process is going to clean up data of a build, plugins can remove their data associated with this build with help of this extension. |
| 3.0 | Allows to modify build parameters right before they are sent to an agent. |
| 5.0 | Allows to add additional parameters available for a build. It differs from ParametersPreprocessor in a way that parameters added by BuildParametersProvider will be available in popup showing available parameters, and will be considered when requirements are calculated. |
| 5.0 | Provides a human readable description for a parameter, see also BuildParametersProvider. |
| 4.0 | Translator for specific type of service messages. |
| 6.0 | Provides a custom usage statistics. |
Extending TeamCity: Developing TeamCity Plugins | Web UI Extensions