首页 > 解决方案 > 如何在 Gitlab CI 中使用参考仓库

问题描述

我们正在将一些构建作业从 Jenkins 迁移到 Gitlab CI。我们已经成功地使用了 git clone 和 git submodule 以及 jenkins 中的“--reference”选项。这使得克隆大型存储库的速度更快,并减少了每个作业的存储量。

有没有办法在 Gitlab CI 中做同样的事情?

标签: cachingreferencegitlabgitlab-ci

解决方案


您可以使用变量告诉 gitlab-runner 仅获取一定数量的提交(数量越少意味着获取的提交越少,因此运行速度越快):

variables:
  GIT_DEPTH: 10

这意味着运行器在拉下存储库时将获取前 10 次提交。

您还可以控制运行程序如何使用GIT_STRATEGY变量检索存储库:

variables:
  GIT_STRATEGY: fetch

Fetch 是默认设置,您可以在项目 CI/CD 设置中进行配置,但您可以在此处为应该不同于默认设置的单个作业进行设置。其他选项是clonenone根本不检索存储库(例如,如果您正在构建 NPM 依赖项并且他们将它们作为工件上传)。

此外,您可以指定额外的标志,以便在运行程序使用变量git fetch检索存储库时传递给:GIT_FETCH_EXTRA_FLAGS

variables: --no-tags

此变量默认为--prune --quiet。GIT_FETCH_EXTRA_FLAGS:

您可以将所有这些变量放在文件顶部,.gitlab-ci.yml任何工作之外,以便它适用于您的每个工作,或者您可以将其放在单个工作的定义中以仅应用于该工作,或覆盖默认设置在文件的顶部。

有一些文档提供了有关这些选项的更多详细信息:


推荐阅读