However your not tipping your hat to the huge values Jenkins provides:
* Reporting such as unit test reporting
* Emailing and notification
* A well known plugin system
* User security
* Master / Slave management
Jenkins is not just a job runner. Its a job runner that collects reports, maintains history of the job being run, manages user security, has a public api (REST) and plugin system. That is a lot of stuff to implement on your own.Really Jenkins just needs to fix the configuration drift issue.
lets you have Jenkinsfile in your repo https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin
.ci.yml like .travis.yml https://github.com/groupon/DotCi
solves every single problem you have listed.
Looks like jenkins has discoverability issues. I am curious what kind of things you tried with jenkins before writing your own build system.
Instead, we ended up using resque. We're a rails shop and already use resque extensively in production. Resque scales really really well, so we were pretty confident that we would be able to run builds on this sytem indefinitely without needing to split anything into separate clusters. And resque jobs are ruby, so they can be written and tested just like ruby.
As a result, we were able to standardize on just a few jobs (e.g., BuildRailsJob, GradleBuildJob, NodeBuildJob) with a few arguments for each job. In the process, we wrote a lot of really nice primitives, so if we do need a different kind of job (or a modification to an existing job) then those can be made pretty easily. On the whole, I've been extremely pleased with the resulting system.