如何解决Gitlab CI runner 中的 git 子模块错误 - “致命:目标路径已经存在并且不是空目录”
我正在尝试将一个 dubmodule 包含到我的 GitLab 存储库中。它在本地工作得很好,但我的构建管道失败了。根据{{3}},我应该做的就是使用相对网址并设置GIT_SUBMODULE_STRATEGY
,但它并没有真正起作用。
我的.gitmodules
:
[submodule "res/submoduleName"]
path = res/submoduleName
url = ../submoduleName.git
.gitlab-ci.yml
:
variables:
GIT_SUBMODULE_STRATEGY: recursive
integration-test:
# ...
我的流水线 shell 出现以下错误:
Updating/initializing submodules recursively...
Submodule 'res/submoduleName' (https://gitlab-ci-token:[MASKED]@gitlab.com/mainProjectName/submoduleName.git) registered for path 'res/submoduleName'
fatal: destination path '/builds/_oBZKNaH/0/mainProjectName/mainProjectName/res/submoduleName' already exists and is not an empty directory.
fatal: clone of 'https://gitlab-ci-token:[MASKED]@gitlab.com/mainProjectName/submoduleName.git' into submodule path '/builds/_oBZKNaH/0/mainProjectName/mainProjectName/res/submoduleName' failed
Failed to clone 'res/submoduleName'. Retry scheduled
fatal: destination path '/builds/_oBZKNaH/0/mainProjectName/mainProjectName/res/submoduleName' already exists and is not an empty directory.
fatal: clone of 'https://gitlab-ci-token:[MASKED]@gitlab.com/mainProjectName/submoduleName.git' into submodule path '/builds/_oBZKNaH/0/mainProjectName/mainProjectName/res/submoduleName' failed
Failed to clone 'res/submoduleName' a second time,aborting
Cleaning up file based variables
00:00
ERROR: Job failed: exit code 1
我该怎么做才能解决这个问题?
解决方法
错误消息具有误导性。该文件夹为空,但 GitLab 运行程序没有写入权限。我通过在我的工作的 before_script 中添加 - chmod -R 777 res
解决了这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。