Child pages
  • VCS Worker

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

VCS worker

...

Note

The VCS Worker is an experimental feature currently not bundled with TeamCity.

VCS Worker

Interaction with version control (VCS) servers is one of the resource-heavy parts of TeamCity. Until TeamCity 8.0, the related operations were VCS operations could only be performed by TeamCity server itself, and this created a high load on the server and could affect UI responsiveness. In TeamCity version 8.0, we provide introduced an option to execute VCS operations via in a separate process (VCS worker Worker service), which can run on a separate machine (or even ; moreover, you can use several VCS workers Workers running on multiple machines )to offload the server.

For example, you can route all Git VCS traffic through one VCS worker, Worker and all Subversion traffic - through another. Even moreFurthermore, you can make your linux-running run the TeamCity server to talk to on Linux and still be able to use TFS by running a VCS worker Worker on a Windows machine. And, with large setups VCS workerWith large installations, VCS Worker(s) installed on separate machines should noticeably decrease the TeamCity server load.

By default, VCS workers Workers are disabled , and TeamCity behaves as usual, i.e. performs all VCS operations from the main server process.

Installation of a VCS worker

...

A VCS Worker supports Team Foundation Server, Perforce, Subversion, Git, and Mercurial.

Installing VCS Worker

Note

Before installing, make sure that the TeamCity server and the VCS Worker versions are the same. Unlike TeamCity build agents, VCS Worker currently does not support auto-upgrade, this means you need to upgrade it manually each time when you install new version of TeamCity.

  • Stop the TeamCity Server
  • Download the VCS Worker archive and save it to your <TeamCity Data Directory>/plugins folder.
  • Start the TeamCity Server
  • In the TeamCity Web UI, go to the Administration page, select VCS Worker in the Integrations section and download vcs-worker.zip.
  • extract Unpack the vcs-worker.zip to on the target machine and open (The BUILD_<XXX> is the VCS Worker version. Make sure it is the same as the TeamCity server version you are running)
  • Open port 9888 in the firewall
  • set Set the JAVA_HOME environment variable with path to point at the installed Java JVM 1.6+
  • start vcs-worker with Start the VCS Worker using{{<vcs-worker>/bin/vcs-server.bat start}} or <vcs-worker>/bin/vcs-server.sh start command
  • make Make sure you can open vcs worker address in browser from server TeamCity server (like the VCS Worker URL from the TeamCity server using the ping command or a web browser (e.g. http://vcs-worker-host:9888)
  • open Copy <TeamCity data directory>/config/vcs-worker.properties.distun-comment worker. to vcs-worker.properties
  • Open <TeamCity data directory>/config/vcs-worker.properties
  • Uncomment the worker.1.url line: (remove #) and specify the worker URL to installed vcs-worker, i. e.g. http://vcs-worker-host:9888
  • copy vcs-worker.properties.dist to vcs-worker.properties
  • no The TeamCity server restart is required, you can not required. You should be able to see the debugging information about a connected worker via http://your-teamcity-server/admin/admin.html?item=vcsWorkerTab

Advanced configuration of VCS worker

  • .

Configuring Worker

You can modify a number of settings for your VCS Worker: check <vcs-worker>/conf/vcs-worker.properties.dist for

...

all available options.

  • Open <TeamCity data directory>/config/vcs-worker.properties.dist to vcs-worker.propertiesrestart vcs-worker
  • Uncomment required lines (remove #) and configure the settings
  • Restart the VCS Worker to apply the changes.

Running

...

Several VCS

...

Workers

  • install Install another VCS worker Worker on another a different machine
  • edit Edit <TeamCity data directory>/config/vcs-worker.properties and add by adding more workers, e.g. add the worker.2.url=http://second-worker:9888 line
  • if If needed, use the worker.1.vcsTypes and worker.2.vcsTypes settings to assign different VCS types to different workerssave the
  • If needed, you can split the VCS roots of the same type among several workers: e.g. worker.1.vcsRootName=.*TeamCity.* will route all requests for VCS roots with "TeamCity" in the name to the specified worker
  • Save the file, no restart is required. All connected

...

  • workers

...

  • will be listed under

...

  • the VCS Worker tab

...

TeamCity uses round-robin selection of VCS Workers if there are several VCS Workers available to serve an operation. Additional filters can be configured: see the <vcs-worker>/conf/vcs-worker.properties.dist file for all available options.

Binary package

Available VCS worker plugins for different versions of TeamCity:

  • TeamCity 8.0.2 (build 27482)
  • TeamCity 8.0.3 (build 27540)