我通过GitLab的集成CI设置了自动部署管道:
(1)我有一个带有GitLab运行程序的CentOS服务器(使用shell
执行程序)
(2)我有一个包含一个.gitlab-ci.yml
文件和一个.gitsubmodules
文件的存储库,其中指定了两个存储库
(3)我的.gitsubmodules
文件指定每个子模块的master
分支,如下所示:
[submodule "api"]
path = api
url = ../api.git
branch = master
[submodule "client"]
path = client
url = ../client.git
branch = master
我直接在子模块目录(./client
和./api
)中工作。
我希望父目录(即包含两个子模块的“部署”存储库)实际上仅反映对子模块主分支的更改。但是,我发现这没有发生(如果有帮助的话……我将.submodules
文件更改为让branch = master
在使用回购文件一段时间之后。
当我将部署项目推送到GitLab时,我发现子模块设置包括ANY分支的最新提交,而不是我想要的master分支。
我在.gitlab-ci.yml
文件中有此文件,以指定如何设置子模块:
GIT_SUBMODULE_STRATEGY: recursive
我在做什么错?即如何在.gitlab-ci.yml
文件中指定,否则我只想使用子模块的master分支?
这个答案:How to specify the submodule branch in gitlab-ci?对我不起作用。
答案 0 :(得分:0)
似乎我可以通过指定--remote
来告诉顶级仓库查看子模块特定分支上的最新提交:
git submodule update --remote --recursive
根据此答案:https://stackoverflow.com/a/18797720/3114742
但是我觉得这有点怪异,如果有的话,我想有个更好的方法