Integración continua con python 2.7 / matraz / mongoDB / git

¿Cómo debería implementar la continuous integration en mi nueva aplicación? Actualmente, así es como estamos impulsando la producción, por favor tengan paciencia, sé que esto está lejos de ser sensato:

  1. Desde la producción de origen de git push local (la base de código de producción se mantiene en la twig de producción, las modificaciones se escriben directamente allí y se confirman, o los files se extraen individualmente desde otra twig. Origin es el server de producción remoto)

  2. En el cuadro remoto, sudo stop gunicorn (la aplicación se ejecuta como un process)

  3. cp ~ / flaskgit / application.py ~ / matraz / applicaion.py (el origen de git push de los empujes locales a un repository init -bare con un gancho post-update que rellena los files en ~ / flaskgit. ~ / matraz es donde el el service de gunicorn ejecuta la aplicación bajo un virtualenv)

  4. sudo start gunicorn

hacemos nuestras testings con el código ~ / flaskgit ejecutándose en un puerto diferente. una vez que se ve bien, hacemos el CP

Me encantaría tener algo más fluido. He usado a Jenkins en el pasado, y me encantó la experiencia, pero no la configuré.

¿Qué resources / utilidades debo search para hacer esto bien?

¡Gracias!

buildbot, jenkins / hudson, pero estos le dan una continuous integration en el sentido de que puede ejecutar un equivalente de "hacer" con cada cambio de base de código a través de un enlace de confirmación. También puede ver vagrant si hay algo allí para usted para crear wrt repetible vm para config / setup. Podría atarlo con un gancho de compromiso.