Skip to end of metadata
Go to start of metadata
You are viewing documentation of TeamCity 6.5.x, which is not the most recent released version of TeamCity. Please refer to the listing to choose another version.

Table of Contents

TeamCity comes bundled with a Development Package that can be used to start developing TeamCity plugins.

To get the package use .tar.gz or .exe. distribution.
Upon installation, <TeamCity Home Directory> will have a devPackage directory which contains TeamCity open API binaries, javadoc, sources and archive with a sample plugin.

devPackage directory description

There are mainly two types of plugins in TeamCity: server-side plugin and agent-side plugin.
To develop agent-side plugin you need the following part of Open API:

  • common-api.jar
  • agent-api.jar

Correspondingly for the server-side plugin, you need:

  • common-api.jar
  • server-api.jar

Note that sometimes a part of agent side plugin has to work in the same JVM where the build tool is executing. For example, some custom test runner can be executed in the JVM where the tests are running. runtime directory of devPackage contains some jars that can be used in this case.

devPackage also contains some base classes for tests under the tests directory.

Sample Plugin

Building and deploying sample plugin

Building plugin with Apache Ant

  • Unpack <TeamCity Home Directory>\devPackage\ into a directory of your choice
  • Edit file and set value for path.variable.teamcitydistribution property to path of <TeamCity Home Directory>
  • Run ant dist in the plugin directory (Ant 1.7+ is recommended). The plugin distribution should be created in dist directory.

Building sample plugin in IntelliJ IDEA

  • Unpack <TeamCity Home Directory>\devPackage\ into a directory of your choice
  • Open the project in IDEA (the .ipr file should work OK in IntelliJ IDEA 8.1.4 and later (includinge IntelliJ IDEA 9.0 Community Edition))
  • On prompt to add path variable, set "TeamCityDistribution" path variable to the directory where TeamCity with debPackage is installed (<TeamCity Home Directory>).
  • Open Project Structure and ensure you have Project SDK with name "1.5" pointing to Sun JDK version 1.5

Running the server with plugin from IDEA

  • Either edit file to set path.variable.teamcitydistribution property or regenerate the build script from IDEA (execute "Generate Ant Build" with settings: single file, all other options unchecked).

If you use Ultimate edition of IntelliJ IDEA, you can start TeamCity's Tomcat right form the IDE:

  • Go to "server" run configuration settings and configure Application Server pointing it to <TeamCity Home Directory>
  • Run "server" run configuration. It will run Ant create distribution task, deploy the plugin into ${user.home}/.BuildServer directory and run TeamCity server.

If you use Community edition, see #Building plugin with Apache Ant - you can run "deploy" Ant build target right from Ant Build IDEA tool window and then start TeamCity manually.

Sample Plugin Functionality

The sample plugin adds "Click me!" button in the bottom of "Projects" page. Click it to navigate to the plugin description page.