Skip to content

JetBrains/commit-status-publisher

Repository files navigation

Teamcity Commit Status Publisher

official JetBrains project

TeamCity build feature publishing a commit status to an external system like JetBrains Upsource, GitHub, Gerrit Code Review tool, Bitbucket Cloud or Atlassian Stash.

The plugin is compatible with TeamCity 7.1.x and later and [is bundled] (see Commit Status Publisher) since TeamCity 10.x.

Download

Get plugin from the latest build corresponding to your TeamCity version:

TeamCity Status Download
TeamCity 10.0.x Download
TeamCity 9.1.x Download

Found a bug? File an issue.

Build

Local plugin build

In the absence of the TeamCity project, you can build the plugin locally using libraries from the TeamCity distribution by running the following command:

gradle clean build -PTeamCityTestLibs=TEAMCITY_DISTR/devPackage/tests -PTeamCityLibs=TEAMCITY_DISTR/webapps/ROOT/WEB-INF/lib -PTeamCityVersion=DIST_VERSION

Where TEAMCITY_DISTR must be replaced with an absolute path to the TeamCity distribution directory. And DIST_VERSION must be replaced with actual version of distribution.

Local plugin build from the scratch

For this build you require full bundle of TeamCity sources. Before building the plugin locally, you should build required artifacts using IntelliJ IDEA. To do it open in IntelliJ IDEA Build | Build artifacts menu and build artifacts: dist-openapi-integration and web-deployment.

To build the plugin locally if it is located within a subdirectory run the command in the plugin project root directory:

gradle clean build -PTeamCityVersion=TEAMCITY_VERSION

Parameter TEAMCITY_VERSION is optional (default value: SNAPSHOT), it describes which version of TeamCity libraries should be used from remote maven repository (or local cache).

Local plugin build using separate TeamCity sources

If TeamCity project sources are located elsewhere, not as plugin parent directory, please use the following command:

gradle clean build -PTeamCityTestLibs=TEAMCITY_PROJECT/.idea_artifacts/dist_openapi_integration/tests -PTeamCityLibs=TEAMCITY_PROJECT/.idea_artifacts/web-deployment/WEB-INF/lib -PTeamCityVersion=DIST_VERSION

Where TEAMCITY_PROJECT must be replaced with an absolute path to the TeamCity project directory. DIST_VERSION is optional, by default will be used SNAPSHOT value and will be used prebuilt version of TeamCity Open API from local maven cache, or you can pass actual version of TeamCity to get Open API from remote maven repository.

Build result

The target directory of the project root will contain the commit-status-publisher.zip file, which is ready to be installed.

Once the plugin is installed, add the Commit Status Publisher build feature to your build configuration.

Publishing TeamCity Open API to local maven cache

If you have TeamCity sources, and you want to use locally built version of TeamCity Open API you can prebuild it with IntelliJ IDEA, using menu Build | Build artifacts and selecting there artifact dist-openapi. After successfull build you should execute command to publish built artefact to maven cache:

mvn -f install_teamcity_api_pom.xml package -DTeamCityVersion=DIST_VERSION

Where DIST_VERSION must be replaced by SNAPSHOT by default, or any version, that you want than to pass as TeamCityVersion parametr to the gradle script.