About

Gavel CI is a demonstration of how to turn the JobServ CI Engine into a secure and usable system. It takes a novel(or lazy) approach of demonstrating the step-by-step process by making each commit of the Git repository describe and show how things can be done. This project was created to show people how with a very little effort a high quality CI system can be built using the JobServ as a base.

The project uses GitHub as its oauth2 login provider and also makes it easy to create CI jobs triggered by Pull Requests. If this is all you need from a CI system, then the code could be used as-is. However, its really intended to be used a starting point to show you where and how you can create customizations that fit your organizations needs

Why Would You Do This?

In short, life's too short to deal with bad CI. In addition to all the points presented in the JobServ's README, I finally hit a point in 2016 where I couldn't understand why CI servers all seemed to be bad combinations of:

I started thinking about things over Thanksgiving and became convinced that implementing a good CI system shouldn't be that hard. As of mid-2018 the entire JobServ server is still under 3,000 lines (using "wc -l *"). CI "worker" script is only 530. Many similar projects are hundreds of thousands of lines. Despite the small code the system can boast some nice features:

What Next

Browse through the commit history starting from the beginng and read your way up to the point it can run itself inside docker-compose.