【问题标题】:How to set the workspace root directory on Jenkins nodes?如何在 Jenkins 节点上设置工作区根目录?
【发布时间】:2014-07-09 22:33:53
【问题描述】:

默认情况下,Jenkins 节点上的作业将存储在[Remote FS root]\workspace\

目前,[Remote FS root] 设置为 D:\,所以我的工作在 D:\workspace\。由于255-characters limit on Windows,我需要我的作业目录直接位于驱动器的根目录。

如何设置工作区根目录为D:\

【问题讨论】:

    标签: jenkins continuous-integration


    【解决方案1】:

    我们必须在 Jenkins 主节点启动时指定以下参数:

    -Dhudson.model.Slave.workspaceRoot=D:/
    

    为此,请在$JENKINS_HOME 中找到jenkins.xml 配置文件并完成<arguments></arguments> 部分。

    【讨论】:

    • 值得注意的是,documentation for Jenkins properties 声明此属性指定“从根目录中包含工作空间的文件夹的名称”。因此,如果我们想在从属服务器上使用D:\jobs 而不是D:\workspace,则只需将该属性设置为jobs。似乎指定绝对路径也覆盖了从属根目录的使用。
    【解决方案2】:

    默认情况下,Jenkins slave 上的作业将存储在 [Remote FS root]\workspace\

    至少在 Windows 上,这似乎不是真的。

    我正在运行 Jenkins 1.480.3,我的从属服务器通过 jenkins-slave.exejenkins-slave.xml 在 Windows 节点上运行。

    XML文件和服务参数都不存储任何路径信息,*workspace目录创建在jenkins-slave.exe的位置,和http://server/jenkins/computer/node_name/configure下的设置一样-> Remote FS root 帮助内容如下:

    奴隶需要有一个专门用于 Jenkins 的目录。指定 这个工作目录在slave上的绝对路径,比如 '/var/jenkins' 或 'c:\jenkins'。这应该是本地的路径 从机。 (...)

    从站不维护重要数据(除了 项目最后建立在它上面),所以你可以设置从属 工作区到一个临时目录。这样做的唯一缺点是 如果从属设备关闭,您可能会丢失最新的工作区。

    所以看起来实际上可以通过 Jenkins FS 根为从站设置 workspace

    还相关:https://issues.jenkins-ci.org/browse/JENKINS-12667

    【讨论】:

    • 是的,使用 Jenkins FS root 是可能的,这就是它的用途。但是,作业被放入[Remote FS root]\workspace,而我需要它们在[Remote FS root],这意味着我的job1将在D:\job1而不是D:\workspace\job1
    • @StéphaneBruckert - 链接的 Jenkins 问题也是如此。猜猜这是一个不希望它在 FS 根/工作区下的有效案例。
    • 确实如此。我建议的解决方法现在很好,即使我仍然希望有一天会添加此功能。
    猜你喜欢
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多