如何在.gitlab-ci.yml中为gitlab-ci中的子模块(不同的repo)指定分支?
答案 0 :(得分:4)
你没有。您可以在正在构建的项目的.gitmodule
文件中指定它。
[submodule "MyRepo"]
path = MyRepo
url = https://github.com/vendor/MyRepo.git
branch = master
答案 1 :(得分:0)
与@stefan对这个问题的回答一起。您还必须告诉Git仅查看指定的分支以获取最新的提交。 git submodule update
似乎总是获取最新的提交,而与分支无关。进行git submodule update --remote
似乎迫使git专注于您在.gitmodules
文件中指定的分支。
因此,在您的.gitmodules
文件中,如@stefen所述:
[submodule "MyRepo"]
path = MyRepo
url = https://github.com/vendor/MyRepo.git
branch = master
然后在您的GitLab .gitlab-ci.yml
文件中,您需要指定在设置子模块时仅查看已配置的分支。我的文件包含以下before_script
:
# GitLab CI provides a variable "GIT_SUBMODULE_STRATEGY" that sets up submodules automatically
# But then branch tracking doesn't work (doesn't seem to allow for specifying the --remote) flag
before_script:
- git submodule sync --recursive
- git submodule update --init --remote --recursive
根据文档,此before_script
与GIT_SUBMODULE_STRATEGY
提供的功能相同(除了我可以在--remote
上添加before_script
标志):{{3 }}