这是我的情况:
我已经[按照git Windows master / Linuxslave的Jenkins路径中的](指示配置了两个Git安装。Git安装设置如下:
WindowsGit
C:\Program Files\Git\bin\git.exe
LinuxGit
/usr/local/bin/git
因为我需要在linux从属服务器上运行作业,所以我的作业git配置指向LinuxGit(Git可执行文件选项)。工作顺利,没有问题。但是,当我尝试使用“轮询SCM”选项时,它会中断。我相信这里的问题是因为Poll SCM在Windows Master上运行,并且此作业的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 Slave上。
问题:谁能想到我可以为 源代码管理 配置选择一个Git安装,为 Poll SCM 功能选择另一种安装方法?
根据要求,我将发布自己对总体想法的答案,以便在使用git时在Master Slave上混合Windows / Linux。此解决方案甚至可以在Windows/ Linux从属服务器的多个混合上运行相同的作业,并且不会破坏Master poll scm:
无论您使用的是Jenkins Master平台,请将默认git安装配置为指向该平台的有效git。例如,c:\apps\git\bin\git.exe对于Windows。然后为每个节点配置自定义“ 工具位置 ”。这样,主服务器将能够轮询git以检查更改并在从服务器上触发作业。从站将能够克隆git代码,因为它具有 (Git)Default的 自定义位置。正确配置的步骤:
c:\apps\git\bin\git.exe
linux从属节点的节点配置应如下所示:
我相信,如@Jayan所述,当您需要进行多个git安装或出于某种原因需要运行特定版本的git来进行某些Jenkins作业时,其他“ git安装”更为合适。