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.