2016-03-07 42 views
3

这里是我的情况:詹金斯投票SCM(GIT)在Windows主/在Linux上构建从

  • 使用Git为我的SCM
  • 詹金斯工作在Linux上运行从
  • 詹金斯主托管在Windows

我已经配置了两个Git安装,如Jenkins path to git Windows master/Linux slave所示。 Git安装设置如下:

  • 名称:WindowsGit |路径:C:\Program Files\Git\bin\git.exe
  • 名称:LinuxGit |路径:/usr/local/bin/git

因为我需要在linux slave上运行作业,所以我的作业git配置指向了LinuxGit(Git可执行选项)。工作很好,没有问题。但是,当我尝试使用“投票SCM”选项时,它会中断。我相信这里的问题是因为Poll SCM在Windows主控上运行,并且此作业的Git信息指向LinuxGit。 Git的查询日志显示:

Caused by: java.io.IOException: Cannot run program "/usr/local/bin/git": CreateProcess error=2, The system cannot find the file specified

在另一方面,如果我选择WindowsGit,Git的查询日志是好的,但因为它是在Linux上运行从工作本身将明显失败。

问题: 谁能想想办法,我可以选择一个安装的Git为源代码管理配置和另一个用于投票SCM功能?

+0

大师是否安装了git?你可以调整PATH路径吗?我承认在Linux上拥有Jenkins大师要好得多。我没有任何Windows高手试试... – Jayan

+0

是的。我找到了解决方案。使用主安装,然后使用节点配置来覆盖widows的git安装设置使用Linux获得路径的git路径似乎是最好的选择。在另一个问题中看到我的回答(35223071)。也应该适用于那里。 –

+0

我相信这个问题可以被标记为重复。问题稍有不同,但答案与使用“管理节点”选项适用于35223071的相同。 –

回答

0

按照要求,我发布了自己的答案,用于在使用git时在Master Slaves上混合使用Windows/Linux的一般思路。该解决方案甚至可以在多个Windows/Linux混合的从机上运行相同的作业,并且不会中断主查询scm:

无论您使用Jenkins Master平台,将默认的git安装配置为指向有效该平台的git。例如,Windows的c:\apps\git\bin\git.exe。然后为每个节点配置定制的“工具位置”。通过这种方式,主服务器将能够轮询git来检查更改并在从服务器上触发作业。然后,Slave将能够克隆git代码,因为它具有其自定义位置(Git)默认。步骤来正确配置:

  1. 管理詹金斯>管理节点
  2. 对于具有比在“GIT中安装”提供的一个其它的git位置上的每个节点中,执行: 2.1打开节点配置页(配置图标) 2.2检查“工具位置”,如果尚未选中 2.3单击“添加” 2.4选择“(GIT)默认”的下拉 2.5输入路径从节点git的安装(如/usr/local/bin/git) 2.6保存
  3. 重复对于每个Linux从站,步骤2.1到2.5电子作业可能会运行。为Linux从属节点

节点配置应该是这个样子:

slave node configuration

相信额外的“混帐装置”更适合,因为@Jayan提到的,当你需要有多个git安装,或者出于某种原因,您需要运行特定版本的git以选择Jenkins作业。