1

我有一个 Jenkins 多配置项目,我想在位于两个不同 VM 上的两个从属设备(Slave-1 和 Slave-2)上构建。我对 Jenkins 如何尝试为每个奴隶创建不同的工作区有疑问。我想在每个 VM 上使用相同的工作区路径。

我从 Perforce 获取我的项目文件,并希望将它们放在两个 VM 上的目录 c:\workspace 中。但是,当我运行构建时,我会查看具有 Slave-1 的 VM,它将项目文件存储在:

c:\workspace\label\Slave-1

在另一个 VM 上,项目文件位于:

c:\workspace\label\Slave-2

c:\workspace 下的文件夹“标签”是我为配置矩阵输入的从属名称。

如何覆盖 Jenkins 以将我的项目文件放在每个 VM 上的 c:\workspace 下(没有 \label\Slave_name 文件夹)?我了解 Jenkins 这样做是为了避免混淆,但我的工作区位于完全不同的 VM 上,它们不会以任何方式相互交互。我必须使用 c:\workspace 目录才能正确构建。

4

2 回答 2

1

您可以使用额外的参数启动 Jenkins:

-Dhudson.model.Slave.workspaceRoot=c:\workspace

取自这里: https ://issues.jenkins-ci.org/browse/JENKINS-12667

于 2015-05-13T19:21:45.127 回答
0

条款:

UnifiedDir:您要使用的目标目录,在两个 VM 上都相同 工作区:Jenkins 创建的每个 VM 唯一的目录

为了绕过工作区隔离和唯一命名,您的构建脚本应将整个工作区(或您需要的内容)复制到目标统一目录中。然后在“Workspace\Build SCript”中的第二个调用应该调用“UnifiedDir\Build Script”

现在,您在构建节点之间有了一个统一的工作区。只需确保在复制 WORKSPACE 内容之前删除此 UnifiedDir 的内容即可。

于 2015-05-13T23:28:38.480 回答