SVN command line in jenkins fails due to server certificate mismatch

I finally managed to solve the problem! What I did is simply put in Jenkins script:

echo p | svn up --username <usr> --password <pwrd>

This solved it! since the echo emulated the manual input to accept permanently the certificate.

Root Cause is the fact that Jenkins shell scripts run under the windows service user - thus uses a different place for the user profile cache (in C:\Windows\System32\config\systemprofile\AppData\Roaming\Subversion instead of %USERPROFILE%\AppData\Roaming\Subversion\)


Pretty old question, but still quite alive.

As you know, the problem is that the accepted certificate cache (as well as the username/password cache) is per-user, and since Jenkins is running as a different user (most likely SYSTEM), it has no idea of your regular user cache.

Not all SVN clients let you do the "echo p" thing there (it didn't work for me), and the --trust-server-cert apparently doesn't work in this case either.

What worked for me was to open a console window as SYSTEM, and do the interactive acceptcertificate-login-password dance in there.

Since all of this is cached, you only need to do this once, and from then on, all svn up and similar requests will work.


echo p | svn commands

Worked great in Jenkins windows batch command prompt. Doing this once will permanently accept the certificate for the Jenkins user in the Build box.

Tags:

Svn

Jenkins