How can I define an optional part of a CI pipeline?


#1

Hi,

I want to setup a CI pipeline with the following steps:

The only required step for this pipeline should be “Build binary” all other steps should be optional and can be triggered manually when needed. I managed to get my desired behavior with blocking manual actions. But the drawback here is that the pipeline is always in a “blocked” if the last 3 steps are not ran. Is there a way to make these steps optional, and consider the pipeline as passed after the first and only mandatory stage is finished successfully?


#2

If I’m reading what you’re trying to do correctly, you may want to have a look at this from the Pipeline config doc:

https://docs.gitlab.com/ee/ci/yaml/#when

J


#3

What exactly do you mean? I looked a lot and long time on this documentation. If I specify all following jobs (build:image, create updatefile, cleanup) as manual, then the pipeline is considered passed after the first step (build:binary) but then I need to start all 3 jobs manually. If I only define the build:image step as manual, then all other jobs are executed no matter did the build:image job run or not.