CI systems tends to be more about defining a workflow than setting simple parameters, specially if they also handle CD.
For that reason, something looking more like a programing language feels more appropriate to me.
I kind of like the Jenkinsfile syntax for this use case as a CI workflow is not a static definition defined by a configuration file (yaml, json or ini) but the syntax is also not a fully "open" programing language like Python which would authorize too many potential hacks.
A specialized DSL in this case seems more appropriate and being the correct balance between flexibility and complexity, at least for most needs.
For that reason, something looking more like a programing language feels more appropriate to me.
I kind of like the Jenkinsfile syntax for this use case as a CI workflow is not a static definition defined by a configuration file (yaml, json or ini) but the syntax is also not a fully "open" programing language like Python which would authorize too many potential hacks.
A specialized DSL in this case seems more appropriate and being the correct balance between flexibility and complexity, at least for most needs.