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

时间:2015-03-25 18:22:36

标签: git github jenkins

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

  • 源代码管理设置为" Git"
  • 存储库网址设置为 git@github.com:name / branch.git
  • 要构建的分支设置为 原点/ 1.0

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:0)

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

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

我认为上述要求没有任何意义;而不是詹金斯,你可以为此进行监控。

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

git ls-remote <GIT-URL>

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

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

希望这有帮助。

答案 3 :(得分:0)

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

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

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