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 从服务器上的构建 的相关文章

  • 获取签出修订版的 git 标签?

    我正在做 git tag current tag example to test task git checkout tag example to test task HEAD is now at 75fdde3 commit commen
  • “Git 推送非快进更新被拒绝”是什么意思?

    我正在使用 Git 来管理我的两台计算机和我的开发 我尝试将更改提交到 GitHub 但收到此错误 无法将一些参考推送到
  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • macOS 更新后 Jenkins 用户消失

    我在 Mac 上运行 Jenkins 作为 CI 服务器 使用用户 jenkins 的典型设置 它在 macOS 10 12 上运行良好 今天我将 macOS 升级到 10 13 High Sierra 升级过程完成后 Jenkins 无法
  • 如何列出 Git 1.7+ 中的所有远程分支?

    我试过了git branch r 但这仅列出我在本地跟踪的远程分支 如何找到我没有的列表 命令是否列出对我来说并不重要all远程分支或仅那些未跟踪的分支 For the vast majority 1 of visitors here th
  • 如何在 Android Studio 中比较两个 Git 分支?

    我不确定是否可以将主分支 或任何其他分支 与当前功能分支进行比较 例如GIT does 我想要两个分支 主分支和功能分支 之间的差异 以便我可以在合并之前比较差异 我发现 Git UI 对用户不太友好 就像在 AS 中一样 我可以遍历代码并
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • 解锁 Jenkins - 如何

    我已经使用 putty 从 Windows 系统在我的 ec2 实例上安装了 jenkins 当我尝试通过网络访问 jenkins 时 我使用 var lib jenkins secrets initialAdminPassword 解锁
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • 使用 Git 的 Spring Cloud 配置服务器 - 无法克隆或签出存储库连接超时

    我正在使用 GIT 在 Spring Cloud Config Server 上进行 POC Spring Boot 1 5 3 RELEASE 爪哇1 8 弹簧工具套件https github com kishornpatil https
  • 从 git 中删除历史记录 - git 命令失败

    我正在尝试从 Git 历史记录中清除项目 bin 目录 我已经将 bin 添加到 gitignore 并运行 git rm cached r bin成功地 现在我尝试使用 GitHub 帮助页面中推荐的命令来清除历史记录 git filte
  • Git 子模块:[电子邮件受保护]:权限被拒绝(公钥)。致命:无法从远程存储库读取

    我有一个问题git submodule update init remote 我收到错误 权限被拒绝和克隆失败 但我将 SSH 密钥添加到了我的 github 存储库中 我可以拉 推 git 克隆 我拥有所有需要的访问权限 我使用操作系统
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • 在 git 子模块中签出分支

    如何从子模块内更改分支 当我跑步时git branch从子模块内 我看到以下输出 gt git branch HEAD detached from 229a7b2 master 我如何将自己置于一个新的分支上 喜欢development 只
  • `git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?

    我不明白之间的区别git rm cached and git update index assume unchanged 我知道git rm cached
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢

随机推荐