VCS worker
Note |
---|
The VCS Worker is an experimental feature currently not bundled with TeamCity. It is provided upon request if you wish to try it. |
VCS Worker
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 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. Furthermore, you can run the TeamCity server on Linux and still be able to use TFS by running a VCS worker Worker on a Windows machine. With large installations, VCS workerWorker(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.
VCS worker is now provided with embedded support of 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. |
- 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
. - unpack Unpack the
vcs-worker.zip
on the target machine 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 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
- make Make sure you can open the VCS worker Worker URL from the TeamCity server using ping or a web browser (e.g.
http://vcs-worker-host:9888
) - open Copy
<TeamCity data directory>/config/vcs-worker.properties.dist
un-comment worker. tovcs-worker.properties
- Open
<TeamCity data directory>/config/vcs-worker.properties
- Uncomment
worker.1.url
line: (remove #) and specify the worker URL, e.g.http://vcs-worker-host:9888
- copy
vcs-worker.properties.dist
tovcs-worker.properties
- The TeamCity server restart is 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
tovcs-worker.properties
restart 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 theworker.2.url=
http://second-worker:9888
line - if If needed, use the
worker.1.vcsTypes
andworker.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 in the "Administration" section (
http://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.