cwrsync 在 jenkins 下不工作

cwrsync isn't working under jenkins

我使用带有 cygdrive 符号的 cwrsync 来引用磁盘驱动器。 在通常的 cmd(或批处理文件)中,它工作得很好,但是当在 jenkins 环境中使用带有 rsync 调用的 bat 文件时(我的意思是当 jenkins slave 运行这个 bat 文件时)rsync 给出如下错误:

rsync: change_dir "/cygdrive/q/build" failed: No such file or directory (2)

我应该往哪个方向挖?

PS。 rsync 版本为 3.1.1,内置 cygwin 1.7.32;在 windows 服务器 2012 上。

更新。 Q与网络映射驱动器有关。

我发现 windows 中的网络驱动器与用户有关。只要 jenkins 不使用你正在使用的普通用户——它就不会看到任何网络映射驱动器,如果它们不是以某种方式全局可见的话。

因此,解决方案是自动执行命令以将网络驱动器映射为 SYSTEM 用户(由 jenkins 使用):因此我创建了执行以下操作的 bat 文件:

net use Q: \host\sharename /persistent:no

并通过计划任务(由网络可用触发)从 SYSTEM 用户启动它 -- 参见 this question

注意:/persistent:yes 由于某种原因不起作用。