我在私有服务器serverB上有一个存储库repoB,并从中获取部署令牌(用户+密码)。
该存储库用作我尝试配置的项目中的子模块。
在这个项目中,我希望能够在 Gitlab-CI 期间初始化这个子模块。
我的
.gitmodules
是:
[submodule "repoB"]
path = repoB
url = https://serverB/groupB/repoB.git
我的
.gitlab-ci.yml
:
test_build:
variables:
GIT_SUBMODULE_STRATEGY: recursive
实际上,我得到的错误如下(组:
japan7
,项目:nanachan
,repoB:karaneko
,serverB:git.inpt.fr
)
Updating/initializing submodules recursively...
Synchronizing submodule url for 'karaneko'
Cloning into '/builds/japan7/nanachan/karaneko'...
fatal: could not read Username for 'https://git.inpt.fr': No such device or address
fatal: clone of 'https://git.inpt.fr/japan7/karaneko.git' into submodule path '/builds/japan7/nanachan/karenko' failed
Failed to clone 'karaneko'. Retry scheduled
Cloning into '/builds/japan7/nanachan/karaneko'...
fatal: could not read Username for 'https://git.inpt.fr': No such device or address
fatal: clone of 'https://git.inpt.fr/japan7/karaneko.git' into submodule path '/builds/japan7/nanachan/karenko' failed
Failed to clone 'karaneko' a second time, aborting
ERROR: failed: exit code 1
我想我应该将部署令牌用户和密码放在项目机密中(在“设置”->“CI”/“CD”->“变量”中),但我找不到这些变量的名称,也没有任何帮助来解决这个特殊情况。
我该如何进行?
预先感谢您的帮助!
我使用部署令牌解决了同样的问题。刚刚添加了带有部署令牌的子模块,CI 上的一切都运行正常。
http://<username>:<deploy_token>@gitlab.example.com/tanuki/awesome_project.git
并且
.gitmodules
看起来像:
[submodule "tanuki/awesome_project"]
path = tanuki/awesome_project
url = https://<username>:<deploy_token>@gitlab.example.com/tanuki/awesome_project.git