The problem is that when Hudson checks out the files, it doesn't use symlinks. I've tried the svn13 and svn14 plug ins, but neither worked.
Hudson doesn't checkout using symlinks when using SVN (Subversion)
Asked Answered
Be careful with symlinks in repositories. I opened up a bug ticket in JIRA for hudson: issues.jenkins-ci.org/browse/JENKINS-9856 Essentially, symlinks linking outside your check-out directory can cause the files/folders to be deleted when Jenkins cleans the workspace. –
Berneicebernelle
Resolved this problem as a part of 1.30 as well. –
Disjunction
In linux, edit your /etc/init.d/hudson script file:
Look for a line that looks like:
$SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -jar $HUDSON_WAR $HUDSON_ARGS" || return 2
Change it to:
$SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -Dsvnkit.symlinks=true -jar $HUDSON_WAR $HUDSON_ARGS" || return 2
Save the file and type:
sudo /etc/init.d/hudson stop
sudo /etc/init.d/hudson start
In summary, you're essentially looking to pass JAVA -Dsvnkit.symlinks=true so that symlinks are resolved to folders instead of a file.
In CentOS, the line you should change reads:
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"
Change it to:
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -Dsvnkit.symlinks=true -jar $JENKINS_WAR"
And restart jenkins
Thanks for posting the discrepancy between distributions! –
Berneicebernelle
I'm not sure which version of the subversion plugin you've tried, but as of subversion plugin 1.30 it works out of the box.
I guess SVNKit at some point change the default from doing symlink by default, and Jenkins benefited from it.
Yah, come to think of it, when I installed it on a Fedora box back in like march or may, I didn't need to do it that time. Good thing to point out to those using more current versions that doing this isn't really necessary anymore. –
Berneicebernelle
I'm running jenkins latest version on CentOS and it still doesn't work without adding svnkit.symlinks=true option –
Avaria
If you want to edit this setting per slave node, this worked for me:
From Jenkins UI:
- Disconnect node
- Click on slave node, Under Configure -> Advanced -> JVM Options:
- Add line: Dsvnkit.symlinks=true
- Relaunch slave
© 2022 - 2024 — McMap. All rights reserved.