监视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-A
或WORKSPACE-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 构建