使用CI运行器克隆子模块

时间:2018-07-10 12:58:58

标签: python git-submodules gitlab-ci-runner

所以我的.gitlab-ci.yml文件如下:

variables:
  GIT_STRATEGY: fetch
  GIT_SUBMODULE_STRATEGY: recursive

以及我的.gitmodules我也要克隆的子模块:

[submodule "src/submodule"]
    path = src/submodule
    url = https://gitlab.company.com/submodule/submodule.git

现在,当我在本地克隆整个存储库时,一切工作正常,子模块也被克隆了。但是,CI运行器会出现以下错误:

Cloning into '/builds/user/CITest/src/submodule'...
fatal: could not read Username for 'https://gitlab.company.com': No such device or address
fatal: clone of 'https://gitlab.company.com/submodule/submodule.git' into submodule path '/builds/user/CITest/src/submodule' failed
Failed to clone 'src/submodule'. Retry scheduled

我尝试给跑步者一个安全的令牌,并尝试设置秘密变量,尽管我不能百分百确定自己是否正确使用了它们。我发现了很多类似的错误,但是它们主要与将子模块作为工作有关,在这里,我需要立即获取它。

此外,我确实可以正常访问子模块,因为本地克隆也可以正常工作。

我可能需要手动设置跑步者吗?

1 个答案:

答案 0 :(得分:0)

您需要为位于同一GitLab服务器中的子模块使用相对URL。

例如:

[submodule "src/submodule"]
    path = src/submodule
    url = ../../group/submodule.git

不在同一GitLab服务器上的其他子模块,您可以使用常规的完整HTTPS协议URL。

Relevant documentation