GIT clone SSH CI build issue in TFS 2015.3
Issue:
In TFS 2015.3, if you have setup a CI build defection for a GIT repository and if you clone the repository using SSH and then do a GIT push, the builds are not getting triggered.
Error messages:
There are no error messages generated. But, there is not CI build triggered as well.
Diagnosis:
Consider the following scenario.
- You have a TFS 2015.3 server, in which you have a GIT repository.
- You have created a CI build definition for this repository.
- You clone the GIT repository to your local folder, using the normal http or https clone. Then, you do some change and push the changes. You will notice a CI build is triggered.
- Now, you clone the same GIT repository to your local folder, using the SSH clone ( steps here à https://www.visualstudio.com/en-us/docs/git/use-ssh-keys-to-authenticate).
- Now, if you do some changes and then push it, no CI build will be triggered.
Solution:
This is a bug with TFS 2015.3 and it is fixed in TFS ‘15’. However, can use the below steps to resolve the issue in TFS 2015.3.
- Navigate to the path ‘C:\Program Files\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\bin’ on your TFS application server.
- Identify the file named ‘TeamFoundationSshService.exe.config’. Save a copy of the file in a separate location, as a backup.
- Then, add the below lines in the file, within the tag <assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="5.6.0.0-5.6.4.0" newVersion="5.6.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="5.6.0.0-5.6.4.0" newVersion="5.6.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="5.6.0.0-5.6.4.0" newVersion="5.6.4.0" />
</dependentAssembly>
- Go to ‘Services’ and restart the service named ‘Team Foundation Ssh Service’
- If you have multiple TFS application server, you will have to perform the steps in all of them.
- Do a fresh SSH clone and then make changes and push them and check if CI build is getting triggered.
Note: This is applicable only for closing GIT repository using ‘git clone ssh’. For any other issues, or if the issue is present even after applying the above steps, please open a support case with Microsoft.
Written by: Sivarajaguru, Support Engineer, Team Foundation Server Support Team
Reviewed by: Nitish Nagpal, Support Escalation Engineer