Skip to content

Add 'include' key to .gitlab-ci.yml

We have a local deployment of GitLab with around 20 VMs running gitlab-ci-multi-runner. We have 50+ projects that all compile exactly the same way on the build slaves, but due to having to support 5+ Linux distros, MacOSX and Windows (7, 8.1, 10) we end up with huge .gitlab-ci.yml files that are identical in every project. When we add a new distro, for example RHEL has recently become free so we would like to add that, we have to go through all projects (even with a script, it's tedious) and add it to the .gitlab-ci.yml.

It would be brilliant if we could include a single file for each project using an includes key:

includes:
  - https://our.webserver.com/ci/slaves/cxx/.gitlab-ci.yml

I would envision the includes key would work as a list of URIs, so local file includes would work as well. I guess to start off with if file://, http:// and https:// would work that'd cover a lot of peoples use cases.

Another option is that you could upload a YAML file in the GitLab UI and give it a name then the GitLab runner could retrieve those? Maybe that could be a later step.

We would be happy to implement and support this if it is something that the project would accept and could point us in the right location to implement!