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

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?

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

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.