hudson filesystem-scm plugin Parameter 'directory' is not a directory

4.3k views Asked by At

What I am trying to do is move the contents of C:/devel/Hudson/urmsSettopControl to slave1 C:/devel/HudsonSlave/workspace/Power Cycle and I keep getting this error, I have tried / \ and even leaving a \ at the end of the dir path to no avail. What am I doing wrong here?

Building remotely on slave1
FSSCM.checkout C:/devel/Hudson/urmsSettopControl to C:/devel/HudsonSlave/workspace/Power Cycle
FATAL: Parameter 'directory' is not a directory
java.lang.IllegalArgumentException: Parameter 'directory' is not a directory
    at org.apache.commons.io.FileUtils.listFiles(FileUtils.java:293)
    at org.apache.commons.io.FileUtils.iterateFiles(FileUtils.java:339)
    at hudson.plugins.filesystem_scm.FolderDiff.getNewOrModifiedFiles(FolderDiff.java:104)
    at hudson.plugins.filesystem_scm.RemoteFolderDiff$CheckOut.invoke(RemoteFolderDiff.java:94)
    at hudson.plugins.filesystem_scm.RemoteFolderDiff$CheckOut.invoke(RemoteFolderDiff.java:88)
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1931)
    at hudson.remoting.UserRequest.perform(UserRequest.java:114)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:270)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at hudson.remoting.Engine$1$1.run(Engine.java:58)
    at java.lang.Thread.run(Thread.java:619)
2

There are 2 answers

0
minder On

I had the same problem on Linux and solved it by setting proper permissions to all directories in the path.

0
Karima Rafes On

Hudson filesystem-scm plugin is for local test in your computer. The best solution is to execute directly Jenkins with your linux account. Hudson filesystem-scm plugin can so work without problem with your rights with your files.

Extract : How to run Jenkins under a different user in Linux (Redhat)

To change the jenkins user, open the /etc/sysconfig/jenkins (in debian this file is created in /etc/default) and change the JENKINS_USER to whatever you want. Make sure that user exists in the system (you can check the user in the /etc/passwd file ).

$JENKINS_USER="manula"

Then change the ownership of the Jenkins home, Jenkins webroot and logs.

chown -R manula:manula /var/lib/jenkins 
chown -R manula:manula /var/cache/jenkins
chown -R manula:manula /var/log/jenkins