Windows 主服务器上的 Jenkins Poll SCM (Git) / Linux 从服务器上的构建

2024-04-29

这是我的场景:

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

我已经配置了两个 Git 安装,如所示Jenkins 到 git Windows master/Linux Slave 的路径 https://stackoverflow.com/questions/35223071。 Git 安装设置如下:

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

因为我需要在 Linux Slave 上运行作业,所以我的作业 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 时在主从服务器上混合 Windows/Linux。该解决方案甚至允许在多个 Windows/Linux 从属设备上运行相同的作业,并且不会破坏主轮询 scm:

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

  1. 管理 Jenkins > 管理节点
  2. For each node having git location other than the one provided in the "Git installation", do:
    1. 打开节点配置页面(配置图标)
    2. 如果尚未选中,请选中“工具位置”
    3. 点击“添加”
    4. 在下拉列表中选择“(Git) 默认值”
    5. 输入从节点git安装路径(例如/usr/local/bin/git)
    6. Save
  3. 对作业可能运行的每个 Linux 从属设备重复步骤 2.1 到 2.5。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 主服务器上的 Jenkins Poll SCM (Git) / Linux 从服务器上的构建 的相关文章

随机推荐