How to set the workspace root directory on Jenkins nodes?
We have to specify the following argument on startup of the Jenkins master node:
-Dhudson.model.Slave.workspaceRoot=D:/
To do so, find the jenkins.xml
configuration file in $JENKINS_HOME
and complete the <arguments></arguments>
section.
By default, jobs on a Jenkins slave will be stored in [Remote FS root]\workspace\
It seems that, at least on Windows, this is not actually true.
I'm running Jenkins 1.480.3, and my slaves are run via jenkins-slave.exe
and jenkins-slave.xml
on Windows nodes.
Neither the XML file nor the service parameters store any path information, and *the workspace
directory is created at the location of the jenkins-slave.exe
, which is the same as the setting under http://server/jenkins/computer/node_name/configure
-> Remote FS root
the help for which reads:
A slave needs to have a directory dedicated to Jenkins. Specify the absolute path of this work directory on the slave, such as '/var/jenkins' or 'c:\jenkins'. This should be a path local to the slave machine. (...)
Slaves do not maintain important data (other than active workspaces of projects last built on it), so you can possibly set the slave workspace to a temporary directory. The only downside of doing this is that you may lose the up-to-date workspace if the slave is turned off.
So it seems it is actually possible to set the workspace
on the slave via the Jenkins FS root for the slaves.
Also related: https://issues.jenkins-ci.org/browse/JENKINS-12667