J'ai mis à jour le plugin Subversion de jenkins vers la version 2.2
Maintenant, j'obtiens l'erreur suivante pour les repos qui se construisent la première fois après la mise à niveau et pour les repos où quelque chose dans un externe a changé. Cela fonctionne pour toutes les autres versions comme prévu.
J'ai essayé d'ajouter des informations d'identification supplémentaires, mais cela n'a pas aidé.
J'espère maintenant que quelqu'un a une idée de ce qui peut être essayé d'autre pour résoudre ce problème d'annyoing.
L'erreur:
hudson.util.IOException2: revision check failed on http://XXX/svn/XXX/Website/Config/trunk
at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.Java:189)
at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.Java:132)
at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.Java:738)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.Java:899)
at hudson.model.AbstractProject.checkout(AbstractProject.Java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.Java:671)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.Java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.Java:580)
at hudson.model.Run.execute(Run.Java:1670)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
at hudson.model.ResourceController.execute(ResourceController.Java:88)
at hudson.model.Executor.run(Executor.Java:231)
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /svn/XXX/Website/Config/trunk failed
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:384)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:373)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:361)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.Java:707)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.Java:627)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.Java:102)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.Java:1020)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.Java:180)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.Java:118)
at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.Java:148)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.Java:45)
at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.Java:160)
at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.Java:35)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.Java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.Java:1238)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.Java:294)
at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.Java:967)
at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.Java:872)
at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.Java:177)
... 11 more
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.Java:37)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.Java:32)
at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.Java:185)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.Java:694)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.Java:382)
... 29 more
Ok après de nombreux commentaires sur le bug officiel rapport nous avons pu résoudre ce problème.
Donc, pour le faire fonctionner, vous devez mettre à jour la dernière version 2.3 du plugin Subversion, qui peut être trouvée ici:
https://jenkins.ci.cloudbees.com/job/plugins/job/Subversion-plugin/
(Téléchargez le fichier .hpi et installez-le sur vos jenkins)
<prot://ip:port > Company Subversion Repository
)svn --username {username} --password {password} checkout prot://ip:port/svn/repo
<- vous pouvez l'annuler après avoir lancé l'extractionfind ~/.Subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
buildmaster/****** (<prot://ip:port> Company Subversion Repository)
REMARQUE: si vous utilisez svn + ssh , votre domaine ressemblera à "svn + ssh: // nom-serveur" sans guillemets doubles. Aucun support pointu, nom de port ou de domaine requis.
J'ai eu la même erreur. Depuis le dépôt svn était protégé par mot de passe. lorsque j'ajoute les informations d'identification et que je les utilise pour vérifier svn, cela fonctionne très bien.
J'obtenais exactement la même exception et c'était à cause de l'utilisation du paramètre de construction dans le chemin du référentiel, par exemple:
http://reposerver/svn/project/${SVN_BRANCH}
même si $ {SVN_BRANCH} était correctement réglé sur 'trunk' Cela ne fonctionnait pas
quand j'ai changé le chemin du référentiel en:
http://reposerver/svn/project/trunk
tout fonctionne bien maintenant
Ce problème est survenu après la mise à niveau du plugin svn de 1.54 à 2.2, il semble donc qu'il y ait un bug dans la nouvelle version du plugin svn jenkins
Je voudrais souligner un point dans réponse de mikepenz: Dans le champ de texte Realm de la configuration de votre travail (après avoir cliqué sur Add additional credentials...) vous n'entrez pas simplement votre domaine SVN mais votre domaine et l'URL complète de votre dépôt externe. Cela m'a fait trébucher.
Donc, cette partie de votre configuration de travail ressemble à ceci:
Modifier :
Il s'avère que ce qui précède n'a pas amélioré la situation: l'erreur d'identification s'est toujours produite et de plus, la validation sur des dépôts externes n'a pas déclenché Jenkins pour construire le logiciel.
J'ai suivi la recommandation ici (qui mentionne également des problèmes de sécurité avec l'approche décrite ci-dessus) et utilisé modules dans Jenkins pour mon externe référentiels.
Voici à quoi ressemble la configuration de mon module pour un dépôt externe: