Le problème est que lorsque Hudson extrait les fichiers, il n'utilise pas de liens symboliques. J'ai essayé les plugins svn13 et svn14, mais aucun n'a fonctionné.Hudson ne vérifie pas en utilisant des liens symboliques lors de l'utilisation SVN (Subversion)
Répondre
Dans linux, modifiez votre fichier script /etc/init.d/hudson:
Rechercher une ligne qui ressemble à:
$SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -jar $HUDSON_WAR $HUDSON_ARGS" || return 2
Modifier à:
$SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -Dsvnkit.symlinks=true -jar $HUDSON_WAR $HUDSON_ARGS" || return 2
Enregistrez le fichier et tapez:
sudo /etc/init.d/hudson stop
sudo /etc/init.d/hudson start
En résumé, vous cherchez essentiellement à transmettre JAVA -Dsvnkit.symlinks = true afin que les liens symboliques soient résolus en dossiers au lieu d'un fichier.
En CentOS, la ligne que vous devez changer lit:
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"
Modifier à:
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -Dsvnkit.symlinks=true -jar $JENKINS_WAR"
et redémarrez jenkins
Merci d'avoir signalé l'écart entre les distributions! – Gary
Je ne sais pas quelle version du plugin subversion vous avez essayé, mais à partir de subversion plugin 1.30 il fonctionne hors de la boîte.
Je suppose que SVNKit à un moment donné, change le comportement par défaut de faire le lien symbolique par défaut, et Jenkins en a profité.
Yah, à y penser, quand je l'ai installé sur une boîte Fedora en mars ou mai, je n'avais pas besoin de le faire cette fois. C'est une bonne chose de signaler à ceux qui utilisent des versions plus récentes que cela n'est plus vraiment nécessaire. – Gary
Je lance la dernière version de jenkins sur CentOS et ça ne marche toujours pas sans ajouter l'option svnkit.symlinks = true –
Si vous souhaitez modifier ce paramètre par nœud esclave, cela a fonctionné pour moi:
De l'interface utilisateur Jenkins:
- Disconnect noeud
- Cliquez sur le nœud esclave, sous Configuration -> Avancé - > options JVM:
- ligne Ajouter: Dsvnkit.symlinks = true
- esclave Relance
Soyez prudent avec les liens symboliques dans les dépôts. J'ai ouvert un ticket de bogue dans JIRA pour hudson: https://issues.jenkins-ci.org/browse/JENKINS-9856 Essentiellement, les liens symboliques qui se trouvent en dehors de votre répertoire de départ peuvent entraîner la suppression des fichiers/dossiers quand Jenkins nettoie l'espace de travail. – Gary
A également résolu ce problème en tant que partie de 1.30. –