I have 5 modules (each in their own folder) in a single Gitlab project, and all 5 modules will need their own pipelines. What I need is that
- when a module is changed, a child pipeline for that module will run
- if a module is not changed, then the child pipeline for that module will not run
- one of the modules is building a common base for the others, so if there are changes, the pipeline for this one module needs to be run before the others, but if that one doesn’t have changes, then the pipeline for the base module should not be run at all. The other modules don’t need info about each other and their pipelines can run happily concurrently.
So my questions are:
- What options are there to control starting a pipeline? Obviously there is the commit message, which I’d prefer using for other things, then there are branches, but that will cause lots of rebases, then there is manual or tags (which is also manual), but are there automated options that would notice for example which folder has changes? Or am I missing some other good option?
- What is the best way to ensure that the pipeline for the base module is completed (if there were changes to it) before the others start?
Thanks in advance!