How to set the workspace root directory on Jenkins

2019-02-16 20:25发布

By default, jobs on a Jenkins slave will be stored in [Remote FS root]\workspace\.

Currently, [Remote FS root] is set to D:\, so my jobs are in D:\workspace\. Due to the 255-characters limit on Windows, I need my job directories to be directly at the root of the drive.

How to set the workspace root directory to D:\?

2条回答
Rolldiameter
2楼-- · 2019-02-16 20:44

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.

查看更多
霸刀☆藐视天下
3楼-- · 2019-02-16 20:46

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.exeand 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 workspaceon the slave via the Jenkins FS root for the slaves.

Also related: https://issues.jenkins-ci.org/browse/JENKINS-12667

查看更多
登录 后发表回答