以下是我的设想:
使用git作为我的scm
jenkins作业在linux slave上运行
詹金斯大师在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从机上运行作业,所以我的作业git配置指向linuxgit(git可执行选项)。工作很顺利,没问题。但是,当我尝试使用“poll 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安装,为poll scm功能选择另一个git安装?
最佳答案
按照要求,我发布了自己的答案,在Git工作时,在主奴隶上混合Windows /Linux。此解决方案将允许在多个Windows/Linux从机上运行同一个作业,并且不会中断主轮询配置管理:
不管jenkins主平台是什么,配置默认的git安装以指向该平台的有效git。例如,对于windows,c:\apps\git\bin\git.exe
。然后为每个节点配置自定义“工具位置”。这样,主服务器将能够轮询git以检查更改并触发从服务器上的作业。然后,从机将能够克隆git代码,因为它的自定义位置为(git)默认值。正确配置的步骤:
管理詹金斯>管理节点
对于除了“git安装”中提供的git位置以外的每个节点,请执行以下操作:
打开节点配置页(配置图标)
如果尚未检查,则检查“刀具位置”
点击“添加”
在下拉列表中选择“(git)default”
输入从节点git安装的路径(例如/usr/local/bin/git
)
保存
对作业可能运行的每个Linux从机重复步骤2.1到2.5。
Linux从节点的节点配置应该如下所示:
我相信,正如@jayan提到的,当您需要有多个git安装,或者出于某种原因需要运行git的特定版本来选择jenkins作业时,附加的“git安装”更合适。