项目组织如下所示:
project_root:
> folder_1
> folder_2
> folder_3
> folder_4
从GitLab关于
include
关键字的文档中,我知道可以包含一个文件来处理所有这些项目的共同特征,因此我不必编写那些命令4种不同的线。所以我想我可以做以下事情:project_root:
common-features-handler.yml
> folder_1
gitlab-ci.yml
> folder_2
gitlab-ci.yml
> folder_3
gitlab-ci.yml
> folder_4
gitlab-ci.yml
问题是,文档尚不清楚在同一仓库中是否可能有多个
gitlab-ci.yml
文件,无论他们在单独的文件夹中。它只是说应该将该文件“放置在存储库的根目录中”,因此我想这本身就排除了在同一存储库中包含多个gitlab-ci.yml
文件的可能性。我尝试将gitlab-ci.yml
文件包含在folder_1的common-features-handler.yml
中,但该作业甚至没有启动。我的猜测是,由于它不是项目的根本,因此CI管道根本看不到它。这使我认为一个仓库不可能处理多个gitlab-ci文件,但是我在文档或在线中找不到任何有关此假设的信息来确认或证实这一假设。是否有可能以一种或另一种方式在单个存储库中包含多个gitlab-ci文件?如果不是,是否有办法避免四次编写相同的安装命令行?
#1 楼
不,每个存储库不能有多个gitlab-ci文件。您可以在以下链接中查看更多信息:
https://gitlab.com/gitlab -org / gitlab-foss / issues / 18157
https://gitlab.com/gitlab-org/gitlab-foss/issues/28592
现在,有些工作正在进行中例如,您可以在此处(https://gitlab.com/gitlab-org/gitlab-foss/issues/56214)看到他们正在处理可以包含其他内容的管道(完整的)管道。
include
关键字更多地是关于减少主gitlab-ci文件的大小。
评论
在您的项目设置中,您可以定义.gitlab-ci.yml的位置,主要思想是每个项目有一个文件,您可能有一个包含多个文件的存储库来维护它们,并在每个项目中包含它们。 (答案很简短,如果有人想对此进行扩展,请随意)