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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监视Jenkins中的存储库,但不要拉相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

另一答案

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

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

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

另一答案

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

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

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

另一答案

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

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

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

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

git ls-remote <GIT-URL>

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

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

希望这可以帮助。

以上是关于监视Jenkins中的存储库,但不要拉的主要内容,如果未能解决你的问题,请参考以下文章

通过拉取请求撤消合并?

jenkins配置凭证使用ssh密钥方式拉取gitlab代码

在 Github 中合并拉取请求时触发 Jenkins 构建

[ci] 构建触发器,实现当gitlab有push动作时候,jenkins自动拉代码.

在 git jenkins 中找不到存储库

Jenkins:如果我们在两个不同的 GitLab 存储库中有代码,我们可以进行“持续集成”吗?