Run a common pipeline across all projects for a group
I’m not sure if this is possible, or if it is, how to set it up
I have an organization, Foo, with many sub-groups containing projects.
I want to add a common setup in all pipelines.
I can do this by editing each .gitlab-ci.yml file
But this involves many updates to setup. If we want to change a line, each pipeline in each project must be edited. This seems fragile.
Is there a way to tell each pipeline in the many projects ‘insert steps X, Y, and Z in your pipeline’ ?
Details ;
I have this to insert in many pipelines (example)
image: ubuntu
stages:
- customvalidate
customvalidate:
stage: customvalidate
script:
- samplescript.sh
What I’d like to do is tell each of the many pipelines
Use that ci code when you execute your CI process
snim2
February 20, 2021, 7:39pm
2
Hi @briankdunbar
The way I would do this, is to have a single repository in your group which contains CI templates, and then use the includes
keyword to use them in “client” projects.
In the case above, you would create a repo called myorg/ci-configs
and in that repo you would have a file called (say) customvalidate-template.yml
containing:
customvalidate:
stage: customvalidate
script:
- samplescript.sh
Then in your myorg/myproject
repo, you would have a .gitlab-ci.yml
file like this:
image: ubuntu
stages:
- customvalidate
include:
- 'https://gitlab.com/myorg/ci-configs/raw/master/customvalidate.yml'
Your client repositories can also override the templates .
This way, you are essentially creating your own version of GitLab Auto DevOps templates .
Good luck!
Sarah
3 Likes
Thank you very much, Sarah.