Adds SourceGear Vault VCS support.
Plugin is bundled with TeamCity distribution since TeamCity 5.1.
- Put Vault Java API jars (available with Java Command Line client) into <TeamCity Data Directory>/plugins/VaultAPI/lib folder.
Vault Java API jars can be found at vaultJavaCLC##/lib directory where ## are digits corresponding Vault version.
- Restart the server.
The VCS is visible as "SourceGear Vault" in 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
To configure repository sources labeling please refer to the corresponding section in TeamCity online documentation.
Only server-side checkout is supported. Personal builds (remote run and pre-tested commit) are not yet supported in any of the IDE.
To enable plugin logging in debug mode edit <TeamCity Home>/conf/teamcity-server-log4j.xml - remove XML comments that are marked with "DELETE THIS LINE FOR ENABLING DEBUG LOGGING" text.
The file can be modified without application restart.
These problems are related to Vault Java API (that TeamCity uses to communicate with Vault server) and can't 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 SourceGear Vault API is static and is not designed to work with more than one repository.
We workaround some of the problems in TeamCity SourceGear Vault plugin, but the workarounds may not work with all Vault versions:
- TeamCity >= 8.1 + Vault < 6.0
Known issue is TW-35021.
To workaround the issue you may add teamcity.vcs.vault.classloading=full internal property to .BuildServer/config/internal.properties file and restart 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 OutOfMemoryError until you increase -XX:MaxPermSize .
Another workaround is to switch to TeamCity 8.0 behaviour by using custom 8.0 Vault plugin build (see attached) but this may cause the mentioned below slowness.
- TeamCity <= 8.0 + any Vault version
- 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.