我有这样的情况,我们在master中有.gitlab-ci.yml,这在分支‘开发’中是不同的,问题是我们有很多repos和很多分支。
我希望对.gitlab-ci.yml进行更改,但我希望确保所有分支都使用相同的.gitlab-ci.yml。我知道gitlab的设计让你的分支有不同的CI CD,因为你的管道可能是不同的。
一种方法是获取所有repos和所有分支,然后将相同的.gitlab-ci.yml复制到所有repos和分支。
你知道有什么更好的方法吗?
发布于 2018-09-02 18:20:12
您可以使用include关键字。它允许您包含来自远程URL或包含您的管道的special project的文件。例如,您可以创建大量“隐藏”模板prefixing them with .,然后根据需要使用extends关键字将它们包含到您的管道中。这还允许您使用变量配置管线模板。
注释:include在创建管道时执行。因此,在通过修复包含的文件创建管道之后,无法修复管道。
的老答案:
如果使用企业版,则可以使用include关键字。
如果你使用的是社区版,我能想到的最好的选择就是有一个check-yaml工作。它基本上运行git diff master -- .gitlab-ci.yml1。如果分支和主服务器上的.gitlab.yml不同,作业将失败,迫使您更新分支。虽然这不会使您的管道自动保持同步,但分流不会被忽视。
1:根据您的git strategy,您可能需要运行git fetch master。
发布于 2018-08-31 21:26:34
也许你可以使用git submodules和change,这是你的.gitlab-ci.yml的默认文件夹。
发布于 2018-09-03 19:22:23
我知道.gitlab-ci.yml在分支中可能不同,因为你的Prod配置项可能与其他分支中的' dev /Test‘不同,所以在不同的分支中有不同的.gitlab-ci.yml文件是很正常的,所以我们的开发团队将master与它们的分支合并并从那里开始更改。
这个想法是当你想让我们说“全局”改变的时候,但这是你将如何处理的问题。
https://stackoverflow.com/questions/52104876
复制相似问题