GitLab 将子模块拉入 CI

GitLab pull submodules inside CI

我有一个使用 GitLab CI 的 GitLab 项目。 该项目还使用了子模块,项目和它的子模块都在同一个 GitLab 帐户下。

这是我的 .gitmodules 文件

[submodule "proto_contracts"]
    path = proto_contracts
    url = https://gitlab.com/areller/proto_contracts.git

我在 .gitlab-ci.yml 文件中也有这篇文章

variables:
  GIT_SUBMODULE_STRATEGY: recursive

但是,当我 运行 CI 我得到这个错误

fatal: could not read Username for 'https://gitlab.com': No such device or address

项目和子模块都在私有存储库中,因此系统会提示您进行身份验证,但正如我所提到的,项目和子模块在同一个帐户下,并且是 运行ner的工作是克隆原始存储库

所以很奇怪,它无法到达子模块 有解决办法吗?

您必须对子模块使用相对 URL。按如下方式更新您的 .gitmodules

    [submodule "proto_contracts"]
        path = proto_contracts
        url = ../../areller/proto_contracts.git

进一步阅读:Using Git submodules with GitLab CI | GitLab Docs