【发布时间】:2015-04-28 22:37:31
【问题描述】:
我有一个 Jenkins 服务器在 Windows 上作为域用户帐户下的服务运行。
当在主服务器上运行时,我可以让 Jenkins 将我的 Git Repo(本地托管的 Stash 服务器)拉到工作空间。
我想在 Windows 从属服务器上执行该作业。我的问题是,当我启动项目时,主服务器首先将任务发送给从服务器,从服务器尝试进行 GIT 拉取,但从服务器没有安装 GIT 或 SSH。
我想避免在我的从服务器上安装 SSH 和 GIT,我希望主服务器先进行拉取,然后将工作空间推送到从服务器,然后让从服务器启动它的任务。
这可能吗?是否有插件可以启用此功能?
【问题讨论】:
-
我不久前遇到了同样的问题并得出了同样的结论。
-
为什么不干脆把工作粘在master上,然后归档工作区(或者只是把它作为一个工件),然后把它发送给一个slave?
-
@Stanjer 如果我理解正确,您是在建议两份工作吗?一个对主设备进行拉动,然后另一个对从设备进行拉动,从第一个获取工作空间?
-
是的,当然。我无法想象这里有其他方式。事实上,当你有一个工作正在创建你的工作空间,然后将它发送到不同的从节点进行构建、测试等时,这是一种常见的做法
-
@Stanjer 从服务作为本地机器运行,所以我猜第一个工作必须是复制到从服务器上某个已知位置的工作。因此,作业 1 的最后构建步骤是将其工作空间复制到 \\slave\jenkins\job2\workspace。我猜那么 job2 的配置只会引用 $workspace。我只希望在 VCS 设置中有一个复选框,上面写着“将任务限制为 Master”或其他内容。这感觉很繁琐,但我可以看到它是如何工作的。