Kallithea CI Service Proposal

Tags: python devops

Kallithea is a new source code management system based on the GPL origins of RhodeCode. The project needs a continuous integration service running in the open to sufficiently test incoming patches across a matrix of configuration variables. I’ve started looking into adding SSH authentication capabilities, so solid automated testing platform is personally interesting.

I am building a Jenkins server for this purpose. The server build process is automated with Packer and Puppet so that we can easily host the system in a large variety of environments.

Builds will run in Docker containers through the Jenkins Docker Plugin. The plugin makes Docker hosts look like a cloud provider to Jenkins. Since Docker now supports nested containers, each Jenkins slave container can launch any number of other containers to orchestrate multi-node tests.

This approach offers at least three benefits:

  • The system can start on a single host
  • We can build rich single use test environments that launch quickly
  • The system can grow as our testing needs grow

At the least I imagine test jobs to run the following:

  • Unit tests
  • Integration tests with various infrastructure components (for instance: sqlite, MySQL, PostgreSQL)
  • Application upgrade tests

I’m happy to pay for the hosting of the CI service, but the open and automated deployment definitions will allow anyone to build and run their own system as well.

The first scraps of configuration are in the following two repositories:

Please let me know if you have any thoughts, questions, or concerns. In addition to the mailing list, you can find me in the #kallithea IRC channel as timfreund.