所以我的.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
我尝试给跑步者一个安全的令牌,并尝试设置秘密变量,尽管我不能百分百确定自己是否正确使用了它们。我发现了很多类似的错误,但是它们主要与将子模块作为工作有关,在这里,我需要立即获取它。
此外,我确实可以正常访问子模块,因为本地克隆也可以正常工作。
我可能需要手动设置跑步者吗?
答案 0 :(得分:0)
您需要为位于同一GitLab服务器中的子模块使用相对URL。
例如:
[submodule "src/submodule"]
path = src/submodule
url = ../../group/submodule.git
不在同一GitLab服务器上的其他子模块,您可以使用常规的完整HTTPS协议URL。