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