Comment by IshKebab

2 days ago

The point of doing it declaratively is that you can easily expose all that information in the UI, and process it to set up the pipeline in the first place (multiple runners, which OS they run, dependencies between steps).

I agree most of your `run` steps should just be one or two lines to call out to another script though, and you shouldn't split things into multiple steps unless necessary.

How does Buildkite do it? Their website doesn't seem clear but it looks like it also uses YAML, you can just use a script to generate it. Gitlab supports that somewhat awkwardly, and I've definitely had one project where that would have been useful (though I couldn't convince my colleagues to do it).

I don't think it would be difficult to add support for it anyway.