1

我正在一个大型 monorepo 上测试 git 部分克隆功能。开发人员可能会在他的机器上运行以下命令:

git clone --filter=blob:none --sparse THE_MONOREPO_URL.git
git sparse-checkout init --cone 
git sparse-checkout set SOME FOLDERS

这似乎运作良好,我现在正试图在 Gitlab 中启动并运行 CI。如果我在我的.gitlab-ci.yml文件中使用默认设置,Gitlab 会克隆整个 monorepo,这需要很长时间。

Gitlab 最近添加了对部分克隆的实验性支持,但是 Gitlab-CI 中是否有任何支持?我唯一的选择是使用上面的命令GIT_STRATEGY: none然后手动克隆所有内容吗?before_script

4

2 回答 2

0

请注意,clone --sparse已经sparse-checkout init为您运行。

您可以将 git 策略设置为 FETCH,然后使用https://docs.gitlab.com/ee/ci/yaml/README.html#git-fetch-extra-flags自定义获取/克隆项目的方式。

请注意,Fetch 和 Clone 策略都使用此标志。2 策略之间的唯一区别是 Clone 会在运行 'git fetch' 之前尝试删除前一次运行缓存的 repo

于 2020-07-14T08:45:21.483 回答
0

您可以配置 GitLab CI 以进行浅克隆。转到您的项目页面 - 设置 - CI/CD,展开通用管道,然后在 Git 浅克隆字段中插入一个值。

于 2020-07-09T04:22:26.783 回答