yamitty11
>What is interesting is that Jenkins has a DSL but that this is not part of the repository.
Netflix job dsl plugin, Jenkinsfile pipleline, dotci all of these let you put a .travis.yml like file in your repo.
>But the plugins have access deep into the Jenkins internals, preventing a rewrite of core functionality.
Plugins don't have deep access to jenkins internals they use clearly defined "extension points" .
I know you are trying to plug gitlab but 'our stuff is better because we don't allow plugins' is not exactly a plus. Jenkins is so popular because it can customized via plugins to wide range of use cases.
For multijob pipelines checkout https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin
Could use something like this if you are using github https://github.com/groupon/DotCi
Job configurations can be version controlled and reviewed like everything else.
Also, the plugin does other optimizations like storing job/build data in a db so jenkins doesn't slow down as you create more builds/jobs. So you don't need "25 Jenkins masters".
For multijob pipelines checkout https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin