如何指定GitLab的CI子模块设置以仅使用master分支上的提交?

时间:2019-09-02 07:50:32

标签: git gitlab gitlab-ci

我通过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?对我不起作用。

1 个答案:

答案 0 :(得分:0)

似乎我可以通过指定--remote来告诉顶级仓库查看子模块特定分支上的最新提交:

git submodule update --remote --recursive

根据此答案:https://stackoverflow.com/a/18797720/3114742

但是我觉得这有点怪异,如果有的话,我想有个更好的方法