如何在GitLab中为许多类似的项目创建一个通用的管道



我们在GitLab中有数百个类似的项目,它们内部具有相同的结构。

为了构建这些项目,我们使用一个通用的TeamCity构建。我们触发并通过API将项目GitLab URL和其他参数传递给构建,因此TeamCity构建知道需要提取/克隆的确切项目。TeamCity VCS根通过参数接受目标URL。

问题是如何用GitLab管道取代现有的TeamCity构建。

我看到一般的方法是在项目中直接使用CI/CD配置文件(.gitlab- CI .yml)。由于项目的结构是相同的,所以不能在所有项目中复制相同的CI/CD配置文件。

我想知道是否有可能为几个项目创建一个可以通过参数接受目标项目URL的公共管道?

您可以将完整的CICD配置存储在存储库中,并将所有项目放入一个简单的.gitlab-ci。

使用这种方法,就没有多余的作业定义。

仍然,您可以将特定的其他作业添加到特定的项目中(在有关.gitlab-ci。你也可以包括多个其他的定义文件,例如,如果你有多个类似的项目。

cf。https://docs.gitlab.com/ee/ci/yaml/# include

在最新的GitLab(13.9)中有更多的引用方法:https://docs.gitlab.com/ee/ci/yaml/README.html#reference-tags

正如@MrTux已经指出的,您可以使用include。

您可以使用它来包含整个CI文件,也可以只包含某些步骤。让Gitlab项目调用相同的Gitlab -ci。存储在中心位置的Yml—您可以找到两种用法的示例的详细解释

最新更新