Gitlab .gitlab-ci.yml文件在分支中不同

时间:2018-08-30 20:24:50

标签: gitlab gitlab-ci

我遇到的情况是master中有.gitlab-ci.yml,这与分支“开发”不同。问题是我们有很多带有很多分支的仓库。

我想对.gitlab-ci.yml进行更改,但我想确保所有分支都使用相同的.gitlab-ci.yml。我知道gitlab的设计使您可以为分支机构使用不同的CI CD,因为管道可能会有所不同。

一种方法是获取所有分支的所有存储库,然后将相同的.gitlab-ci.yml复制到所有存储库和分支。

您知道更好的方法吗?

4 个答案:

答案 0 :(得分:0)

也许可以使用git submoduleschange .gitlab-ci.yml的默认文件夹。

答案 1 :(得分:0)

如果使用企业版,则可以使用include关键字。

如果您使用的是社区版,那么我能想到的最好选择是支票兑现工作。它基本上运行git diff master -- .gitlab-ci.yml [1]。如果分支和主节点上的.gitlab.yml不同,则该作业将失败,从而迫使您更新分支。虽然这不会使您的管道自动保持同步,但转移不会被忽略。

[1]:您可能需要运行git fetch master,具体取决于您的git strategy

答案 2 :(得分:0)

我知道.gitlab-ci.yml在分支中可以有所不同,因为您的Prod CI可能与其他分支中的“ Dev / Test”不同,因此正常情况下,在不同的目录中具有不同的.gitlab-ci.yml文件分支,因此我们的开发团队将master与其分支合并,然后从那里开始更改。

这个想法是,当您想做出“全球”变化时,但这取决于您如何采取行动。

答案 3 :(得分:0)

您只能在外部存储库上为所有分支配置文件 .gitlab-ci.yml。

您转到存储库 --> 设置 --> 常规管道 --> CI/CD 配置文件。

当您在任何分支上进行更改时,此文件将从存储库下载并应用。在作业上,您必须配置“仅:-”才能在此分支上执行此作业。