Should I use CI/CD Components or CI/CD Steps?

Hi,

I am looking to provide reusable CI configuration for many use-cases. It looks like one direction to go is using GitLab CI/CD Components. These give users a way to include jobs with provided inputs. A big plus is they show up in the CI/CD Components Catalog, which seems to be discoverable.

There also appears to be a new experimental feature called CI/CD Steps. These seem more flexible because they can be included as one step in a job so users can add other logic before and after the step and interact with artifacts created by your step a little more easily.

I am wondering if it’s worth it to wait until steps are available because they seem more flexible. Will they be as discoverable as components (show up in the catalog? or have their own catalog? etc.)? Will I have to maintain both a component and a step?