gitlab的问题';s与子模的连续积分

gitlab的问题';s与子模的连续积分,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我有几个项目使用一个公共项目作为子模块。 子模块也托管在gitlab上,但它是一个不同的项目,具有不同的基本名称 在每个项目中,子模块都使用git地址而不是相对路径进行链接 CI构建经常失败,因为它们声称自己没有获取子模块的权限 如何在CI中传递子模块的凭据?既然是同一个用户帐户,为什么还需要凭据 我得到一个类似这样的错误: MSBUILD:错误MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。 段结束:1558348623:构建段开始:1558348623:段结束:

我有几个项目使用一个公共项目作为子模块。 子模块也托管在gitlab上,但它是一个不同的项目,具有不同的基本名称

在每个项目中,子模块都使用git地址而不是相对路径进行链接

CI构建经常失败,因为它们声称自己没有获取子模块的权限

如何在CI中传递子模块的凭据?既然是同一个用户帐户,为什么还需要凭据

我得到一个类似这样的错误:

MSBUILD:错误MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。 段结束:1558348623:构建段开始:1558348623:段结束:1558348625:段结束:1558348625:段结束:1558348625:在段失败时上载段结束:1558348627:在段失败时上载段结束:在段失败时上载段结束:作业失败:退出代码1


但是经过调查,这总是因为子模块没有被拉入。

如果子模块位于同一个GitLab服务器上,则可以在
.gitmodules
中使用相对URL

据我所知,只要触发管道的用户拥有访问这两个项目的正确权限,他们触发的作业应该仍然能够拉取子模块(只要它是相对URL)

从:

如果您使用的是GitLab 8.12+,并且子模块位于同一GitLab服务器上,则必须更新.gitmodules文件以使用相对URL。由于Git允许在.gitmodules配置中使用相对URL,因此可以轻松地使用HTTP克隆所有CI作业,使用SSH进行所有本地签出。.git模块看起来像:

  path = project
  url = ../../group/project.git

注意,不要忘记在
.gitlab ci.yml
脚本中设置
GIT\u子模块策略。

如果子模块位于同一个gitlab服务器上,则可以在
.gitmodules
中使用相对URL

据我所知,只要触发管道的用户拥有访问这两个项目的正确权限,他们触发的作业应该仍然能够拉取子模块(只要它是相对URL)

从:

如果您使用的是GitLab 8.12+,并且子模块位于同一GitLab服务器上,则必须更新.gitmodules文件以使用相对URL。由于Git允许在.gitmodules配置中使用相对URL,因此可以轻松地使用HTTP克隆所有CI作业,使用SSH进行所有本地签出。.git模块看起来像:

  path = project
  url = ../../group/project.git

注意,不要忘记在
.gitlab ci.yml
脚本中设置
GIT\u子模块策略。

因此,通过强制相对路径,这意味着所有开发人员都必须将子模块的repo放在本地机器上的同一文件夹层次结构中?不,因为当他们对存储库进行初始克隆并更新子模块时,git发挥了一些魔力,我相信它会将模块放入
.git/modules/
中,这意味着git在子模块文件夹中跟踪原始路径?因此,通过强制相对路径,这意味着所有开发人员都必须将repo与子模块放在同一文件夹层次结构中??在本地机器上?不,因为当他们对存储库进行初始克隆并更新子模块时,git发挥了一些魔力,我相信它会将模块放入
.git/modules/
中,这意味着git会在子模块文件夹中跟踪源路径?