在工作流脚本中与 Jenkins Slave 共享文件夹

Sharing Folder with Jenkins Slave in Workflow Script

我在访问 OS X Jenkins master 和 Windows VM slave 之间的共享文件夹时遇到一些问题。

从主服务器我试图在 groovy 工作流脚本中在从服务器的共享文件夹中执行批处理脚本。

node("Windows") {
    bat("E:\some\path\thingy.bat")
}

当我尝试 运行 时,我得到 The system cannot find the drive specified.

如果我以 Jenkins Slave 用户身份登录到从 VM 并尝试执行相同的操作,一切正常。

我已经确认在工作流脚本中我运行宁是同一个 Jenkins Slave 用户,但出于某种原因,代表共享文件夹的 E: 驱动器不可见。

任何人都可以阐明问题所在吗?

您是否尝试使用 UNC 路径?

您是否检查 \ 在 Groovy 字符串中是否正确转义?

slave根是在E:还是C:上?

所以答案是使用 UNC 路径。

当我之前尝试这样做时,我只指定了服务器名称,而不是共享文件夹本身的名称。

因此,如果您的共享文件夹名为 "shared",则

\VBOXSVR\ (Doesn't work)
\VBOXSVR\shared (Does work)

有点愚蠢的错误,但你走了。