有人能发布一个具有外部子模块的GitLab CI的工作示例吗?

有人能发布一个具有外部子模块的GitLab CI的工作示例吗?,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我试图让gitlab的CI与外部子模块一起正常工作 我在另一个存储库中有一个子模块,因此没有相对路径 我不想使用SSH密钥解决方案 我想使用CI令牌(CI_作业_令牌) 文件不清楚,因为什么是可能的,什么是不可能的,已经发生了变化,到处都有采用许多不同方法的文本,但没有任何内容符合基本标准 过去,如果子模块具有绝对路径,则不可能使用CI来拉取子模块,因此人们提出了各种解决方案。然后它成为可能,并且有一些关于身份验证问题的解决方案。 但是它们都涉及到一个不再需要的克隆,因为现在我们可以将CI设

我试图让gitlab的CI与外部子模块一起正常工作

  • 我在另一个存储库中有一个子模块,因此没有相对路径
  • 我不想使用SSH密钥解决方案
  • 我想使用CI令牌(CI_作业_令牌)
文件不清楚,因为什么是可能的,什么是不可能的,已经发生了变化,到处都有采用许多不同方法的文本,但没有任何内容符合基本标准

过去,如果子模块具有绝对路径,则不可能使用CI来拉取子模块,因此人们提出了各种解决方案。然后它成为可能,并且有一些关于身份验证问题的解决方案。 但是它们都涉及到一个不再需要的克隆,因为现在我们可以将CI设置为一个递归池

这意味着大多数在线帖子已经变得无关紧要和过时,答案到处都是一句话,但几个小时后就没有一句对我有用了。变量: GIT_子模块_策略:递归

有效的方法是创建一个全局管理密钥,允许访问所有内容,但这根本不是一个好的解决方案

我现在得到的是:

variables:
  GIT_SUBMODULE_STRATEGY: recursive

before_script:
- git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/".insteadOf "git@gitlab.com:"
- git submodule sync && git submodule update --init
根据我的观点,这应该是可行的

但它在以下方面失败了:

致命:无法读取“”的用户名:没有此类设备或地址