The VCS Worker is an experimental feature currently not bundled with TeamCity. It is provided upon request if you wish to try it. |
Interaction with version control (VCS) servers is one of the resource-heavy parts of TeamCity. Until TeamCity 8.0, VCS operations could only be performed by TeamCity server itself. In version 8.0, we introduced an option to execute VCS operations in a separate VCS Worker service, which can run on a separate machine; moreover, you can use several VCS Workers running on multiple machines to offload the server.
For example, you can route all Git VCS traffic through one VCS Worker and all Subversion traffic through another. Furthermore, you can run the TeamCity server on Linux and still be able to use TFS by running a VCS Worker on a Windows machine. With large installations, VCS Worker(s) installed on separate machines should noticeably decrease the TeamCity server load.
By default, VCS Workers are disabled and TeamCity behaves as usual, i.e. performs all VCS operations from the main server process.
A VCS Worker supports Team Foundation Server, Perforce, Subversion, Git, and Mercurial.
Before installing, make sure that the TeamCity server and the VCS Worker versions are the same. |
<
TeamCity Data Directory
>
/plugins
folder.vcs-worker.zip
.vcs-worker.zip
on the target machine (The BUILD_<XXX> is the VCS Worker version. Make sure it is the same as the TeamCity server version you are running)JAVA_HOME
environment variable to point at the installed Java JVM 1.6+<vcs-worker>/bin/vcs-server.sh start
http://vcs-worker-host:9888
)<TeamCity data directory>/config/vcs-worker.properties.dist
to vcs-worker.properties
<TeamCity data directory>/config/vcs-worker.properties
worker.1.url
line: (remove #) and specify the worker URL, e.g. http://vcs-worker-host:9888
http://your-teamcity-server/admin/admin.html?item=vcsWorkerTab
.You can modify a number of settings for your VCS Worker: check <vcs-worker>/conf/vcs-worker.properties.dist
for all available options.
<TeamCity data directory>/config/vcs-worker.properties
<TeamCity data directory>/config/vcs-worker.properties
by adding more workers, e.g. add the worker.2.url=
http://second-worker:9888
lineworker.1.vcsTypes
and worker.2.vcsTypes
settings to assign different VCS types to different workershttp://your-teamcity-server/admin/admin.html?item=vcsWorkerTab
).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.