General Info
Vendor | JetBrains |
License | |
Type | free, open-source |
Plugin Description
Adds SourceGear Vault VCS support. Was bundled with TeamCit versions from 5.1 to 2019.2.
Plugin Development Status
Production quality.
Documentation
Installation instructions
- Put the Vault Java API jars (available with Java Command Line client) into the
<TeamCity Data Directory>
/plugins/VaultAPI/lib
folder.
The Vault Java API jars can be found in thevaultJavaCLC##/lib
directory, where##
are the digits corresponding to the Vault version. - Restart the TeamCity server.
Plugin usage
The VCS is visible as SourceGear Vault in the VCS chooser.
Specify repository connection settings.
- Vault server URL. Should have http://<server>[:<port>]/VaultService structure. Use http:// URL prefix for SSL connection.
- Repository name
- User name
- Password
To configure repository sources labeling, please refer to the corresponding section in the TeamCity online documentation.
Only server-side checkout is supported. Personal builds (remote run and pre-tested commit) are not yet supported.
Logging in debug mode
Enable plugin logging in the debug mode using the TEamCity Web UI as described here. You can also manually edit the <TeamCity Home>/conf/teamcity-server-log4j.xml
\ file - remove the XML comments marked with "DELETE THIS LINE FOR ENABLING DEBUG LOGGING"
text.
The file can be modified without application restart.
Known issues
Vault Java API problems
These problems are related to the Vault Java API (that TeamCity uses to communicate with Vault server) and cannot be fixed on the TeamCity side.
They should be redirected to SourceGear Vault team via http://support.sourcegear.com/.
The main cause of the mentioned problems is that the SourceGear Vault API is static and is not designed to work with more than one repository.
We workaround some of the problems in the TeamCity SourceGear Vault plugin, but the workarounds may not work with some Vault versions:
- TeamCity >= 8.1 + Vault < 6.0
There is a known issue. To workaround the issue, add the teamcity.vcs.vault.classloading=full
internal property and restart the TeamCity server.
If you have several Vault VCS roots in your TeamCity installation (working with different Vault repositories), the workaround may increase PermGen usage and cause the OutOfMemoryError
} until you increase -XX:MaxPermSize .
Another workaround to switch to the TeamCity 8.0 behaviour by using a custom 8.0 Vault plugin build (see attached) but this may cause the slowness mentioned below.
- TeamCity <= 8.0 + any Vault version
The known issue is slowness due to the internal Vault cache building (TW-30577, TW-31848), especially if the repository is huge.
There is nothing that can be done on the TeamCity side.
Other problems
- Agent-side checkout not supported
- Since the plugin uses Vault Java API, you can face the problem with threads running a keep-alive through the Ping API (bug:15244 on SourceGear issue tracker) which results in many
HistoryBeginPing
threads hanging. The problem was fixed in Vault 5.0.4, so we strongly advise to use the latest Vault Java API.
- If you are having trouble connecting to a Vault Server using SSL, you may need to import the ssl certificate into your Java keystore using Java's keytool. More details can be found here.
Feedback/Support
If you believe you've faced a bug: Issue Tracker
If you want to ask a question or discuss: Forum
Any of the above, but you do not want it to be publicly accessible: Online Form or Feedback email