How to specify the submodule branch in gitlab-ci?

天涯浪子 提交于 2019-12-06 10:53:24

问题


How to specify branch in .gitlab-ci.yml for a submodule (different repo) in gitlab-ci?


回答1:


You don't. You specify it in the .gitmodules file of the project you are building.

[submodule "MyRepo"]
    path = MyRepo
    url = https://github.com/vendor/MyRepo.git
    branch = master



回答2:


Along with @stefan's answer to this question. You also have to tell Git to only look at the specified branch for the latest commit. git submodule update seems to always fetch the latest commit regardless of the branch. Doing git submodule update --remote seems to force git to focus on the branch you specify in the .gitmodules file.

So in your .gitmodules files, as @stefen mentions:

[submodule "MyRepo"]
    path = MyRepo
    url = https://github.com/vendor/MyRepo.git
    branch = master

Then in your GitLab .gitlab-ci.yml file, you need to specify to only look at the configured branch when setting up submodules. My file includes this 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

According to documentation, this before_script is the same functionality as provided by GIT_SUBMODULE_STRATEGY (except that I can add the --remote flag to the before_script): https://docs.gitlab.com/ee/ci/yaml/README.html#git-submodule-strategy



来源:https://stackoverflow.com/questions/46177836/how-to-specify-the-submodule-branch-in-gitlab-ci

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!