Flujo de trabajo de desarrollo con Jenkins + Git + Crucible + Jira?

El equipo de desarrolladores tiene requisitos específicos para las herramientas. [He] [leído] [mucho] [sobre] [ideal] [flujos de trabajo] y se me ocurrió algo que funciona así:

  1. Desarrollador crea una request de cambio, revisión, function, etc. en Jira . Esa identificación única del artículo se rastreará a lo largo del flujo de trabajo.
  2. El desarrollador extrae el repository de Git , crea una feature-a twig, confirma los cambios localmente y los envía al repository remoto de git. Los empujones para master están prohibidos.
  3. El gancho Git activa un trabajo de Jenkins que ejecuta una testing de humo (compilation y testings unitarias). Si pasan las testings, entonces se crea una revisión en Crucible .
  4. A less que el comité de revisión de código apruebe los cambios, debemos comenzar desde el paso (1). Crisol desencadena un trabajo de Jenkins .
  5. Jenkins auto se funde para master . Si falla, se requiere una fusión manual y volver al paso (2). El paso de revisión (4) puede pasarse por alto.
  6. Jenkins inicia testings de QA (testings de integración, análisis estático, testings del sistema, escaneo de IP, etc.).
  7. Gatekeeper (o desarrollador senior) promueve ese compromiso particular para el candidato de lanzamiento.

Jenkins tiene muchos complementos, pero nada que funcione de inmediato. Necesito desarrollar muchos conectores (Jenkins-Crucible, Jenkins-Git para fusión automática). Cambiar las herramientas no es una opción.

¿Cómo puedo simplificar el flujo de trabajo?