Uno de mis roles en mi equipo es la persona de construcción . Soy responsable de mantener / actualizar nuestros scripts de compilación y asegurarme de que estamos construyendo 'sin problemas' en el servidor de integración continua. Por lo general, no me importa este trabajo, aunque a menudo parece que estoy constantemente cuidando niños del servidor de CI.
Este trabajo puede ser molesto a veces porque si la compilación se rompe, tengo que abandonar la historia en la que estoy trabajando e investigar el error de compilación. Las fallas de construcción ocurren diariamente en nuestro equipo. A veces, los desarrolladores simplemente no compilan localmente antes de comprometerse, por lo que las pruebas fallan en el servidor CI. En esta situación, me gusta llegar rápidamente a la persona que tuvo el 'mal compromiso' para que la construcción no se rompa demasiado tiempo. A veces (con mucha menos frecuencia) existe una condición extraña en el servidor de CI que debe depurarse.
Sé que muchos equipos maduros usan la integración continua, pero no hay mucho material sobre buenas prácticas.
¿Mis problemas señalan que nuestra integración continua no es muy madura o es simplemente parte del trabajo?
¿Cuáles son algunas buenas prácticas a seguir? ¿Cuáles son las características de la integración continua madura ?
Actualizar
En lugar de responder algunos comentarios, voy a hacer una actualización. Tenemos un comando único y simple que hace exactamente lo que hará el servidor de compilación al compilar la aplicación. Compilará, ejecutará todas las unidades / integración y algunas pruebas rápidas basadas en la interfaz de usuario.
Al leer las respuestas de todos, parece que podríamos tener dos problemas principales.
- El servidor CI no se queja lo suficientemente alto cuando falla una compilación.
- Los desarrolladores no sienten que es responsabilidad de todos asegurarse de que su compromiso se realice con éxito.
Lo que hace las cosas más difíciles en mi equipo es que tenemos un equipo grande (más de 10 desarrolladores) Y tenemos un par de miembros del equipo off-shore comprometidos cuando ni siquiera estamos en el trabajo. Debido a que el equipo es grande y establecimos que se prefieren pequeños compromisos frecuentes, a veces tenemos mucha actividad en un día.