Jenkins Poll SCM (Git) o​​n Windows master / Build on Linux slave

L. *_*nda 3 git jenkins

这是我的场景:

  • 使用 git 作为我的 SCM
  • Jenkins 作业在 Linux slave 上运行
  • Jenkins master 托管在 Windows 上

我已经按照Jenkins 路径中的指示配置了两个 Git 安装到 git Windows master / Linux slave。Git 安装设置如下:

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

因为我需要在 linux slave 上运行作业,我的作业 git 配置指向 LinuxGit(Git 可执行选项)。作业运行良好,没有问题。但是,当我尝试使用“Poll 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 Polling Log 很好,但作业本身显然会失败,因为它运行在 Linux Slave 上。

问题:谁能想出一种方法,我可以为源代码管理配置选择一个 Git 安装,为Poll SCM功能选择另一个安装?

L. *_*nda 5

根据要求,我发布了我自己对一般想法的回答,用于在使用 git 时在主从上混合 Windows/Linux。这个解决方案甚至允许在多个混合的 Windows/Linux 从站上运行相同的作业,并且不会破坏主轮询 scm:

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

  1. 管理 Jenkins > 管理节点
  2. 对于除了“Git 安装”中提供的位置之外的每个节点,请执行以下操作:
    1. 打开节点配置页面(配置图标)
    2. 如果尚未选中,请选中“工具位置”
    3. 点击“添加”
    4. 在下拉菜单中选择“(Git) Default”
    5. 输入从节点git安装的路径(例如/usr/local/bin/git
    6. 节省
  3. 对作业可能运行的每个 Linux 从站重复步骤 2.1 到 2.5。

linux 从节点的节点配置应如下所示:

从节点配置

我相信额外的“git 安装”更合适,正如@Jayan 提到的那样,当您需要安装多个 git 或出于某种原因需要运行特定版本的 git 以选择 Jenkins 作业时。