GitLab在CI中拉取子模块

GitLab在CI中拉取子模块,gitlab,git-submodules,gitlab-ci,gitlab-ci-runner,Gitlab,Git Submodules,Gitlab Ci,Gitlab Ci Runner,我有一个使用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_STRATE

我有一个使用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
项目和子模块都位于一个私有存储库中,因此您可能会收到验证提示,但正如我所提到的,项目和子模块位于同一个帐户下,运行者的工作之一是克隆原始存储库

奇怪的是,它无法到达子模块
有办法解决吗?

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

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

进一步阅读:

您可以添加
.gitlab ci.yml
的相关部分吗?@StefanvanGastel唯一相关的部分是我设置
GIT_子模块_策略
变量的部分,其他一切都只是构建代码并运行。我知道它在克隆部分失败了(它应该递归地克隆子模块),你有git克隆吗。。。in.gitlab-ci.yml?如果是,你应该not@ilia不,gitlab runner负责克隆,我所做的只是将
GIT_SUBMODULE_策略
变量设置为
recursive
,以使克隆也能拉动子模块。你能发布你的.gitmodules文件吗?哇,我在阅读文档时不知怎么错过了它,谢谢!如何避免这种干扰gitlab之外的开发和部署?哦,没关系。这是git理解的。太棒了:)我试过这个,但对我来说没什么不同。对我来说很有用,非常简单,谢谢!