监视Jenkins中的存储库,但不要拉

问题描述 投票:7回答:4

是否有选项可以监控Jenkins中的git存储库,但是在提交时不执行pull / clone / fetch?

  • 源代码管理设置为“Git”
  • 存储库URL设置为[email protected]:name / branch.git
  • 要构建的分支设置为origin / 1.0

我希望基于对存储库中指定分支的提交来触发构建作业,但我不希望Jenkins构建作业执行自动pull / clone / fetch。

git github jenkins
4个回答
3
投票

显然,没有办法轮询github存储库来启动Jenkins任务而不下载前面提到的github存储库。


3
投票

虽然在没有先为该作业提取代码的情况下无法轮询github存储库以启动作业,但您可以通过使用jenkins multijob plugin设置多阶段作业来解决此问题,配置如下:

  • 配置驻留在WORKSPACE-A中的主作业。这项工作将轮询您正在监控的git仓库。当进行更改时,作业将提取更改(您将不使用),然后继续构建,其步骤将是开始连续两个其他作业。
  • 将第二个作业配置为由主作业作为第一个构建阶段触发。这项工作将驻留在WORKSPACE-B,它不会跟踪git存储库。此作业可以执行您想要的任何预配置。因为它存在于与主作业不同的工作空间中,所以它不会被来自git的源代码污染。
  • 将第三个作业配置为由主作业作为第二个和最终构建阶段触发。这项工作可能在你需要的任何地方 - 包括WORKSPACE-AWORKSPACE-B,如果这是你想要的。您可以让此作业跟踪与主作业相同的仓库,以便将更改自动拉入工作区,或将已经从git仓库克隆的文件从WORKSPACE-A复制到此作业的工作区。

注意:只有主作业应该有一个构建触发器 - 与git repo的更改绑定的触发器。其他两个作业将从主作业外部触发。


0
投票

假设您将作业配置为每分钟轮询一次,运行此命令会实现您的目标吗?

git log --since="1 minute ago" | wc -l

在设置Jenkins工作区时,您必须拉出存储库,但之后可以关闭SCM连接。


0
投票

让我在这里了解你的要求。

您希望监视存储库但不要提取任何内容:每当有人进入存储库时,您希望检查存储库的完整性而不是克隆。

我对上述要求没有任何意义;而不是詹金斯,你可以有相同的监控。

你想要实现这个目标吗?您可以在SCM部分中指定任何git URL来设置作业,并且可以在执行shell部分中添加以下内容。

git ls-remote <GIT-URL>

(确保您具有在shell上执行此操作的适当权限)。

如果你们都很好,你将获得所有分支,标签和拉取请求信息,然后你可以决定退出状态。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.