A message queue based CI setup.
I wanted to take advantage of our existing setup:
- We have a message queue set up (rabbitmq) which we use for various things already.
- All our repos on github are set up to hit our service-webhook-to-amqp bridge
- Its a trivial rack app based on https://github.com/raggi/github_post_receive_server
- You can make service hooks connect straight to AMQP now, but we don't expose our rabbitmq to the internet.
- We use these push notifications for various other things, such as mirroring our git repos
- We use campfire to get a sense of our code flow, such as github pushes.
- We have a message-queue-to-campfire bridge called Spokesman-Igor.
- Eventually, Spokesman-Igor will support more than just campfire.
I wanted something that's really flexible.
On average, the cigarillo setup is more complicated than most CI servers. However, its more modular; each piece is simpler and more flexible.