El concepto básico de CI es que tiene un sistema que crea el código y ejecuta pruebas automatizadas cada vez que alguien se compromete con el sistema de control de versiones. Estas pruebas incluirían pruebas unitarias y funcionales, o incluso pruebas basadas en el comportamiento.
La ventaja es que usted sabe, de inmediato, cuando alguien ha roto la construcción. Esto significa que A) Comprometieron un código que impide la compilación, lo que arruinaría a cualquiera que hiciera una 'actualización', o B) Cometieron un código que rompió algunas pruebas, lo que significa que introdujeron un error que debe corregirse, o las pruebas deben actualizarse para reflejar el cambio en el código.
Si usted es un desarrollador en solitario, CI no es bastante tan útil si usted está en un buen hábito de correr sus pruebas antes de una confirmación, que es lo que debe estar haciendo. Dicho esto, podría desarrollar un mal hábito de dejar que CI haga sus pruebas por usted.
Como programador en solitario, todo se reduce a la disciplina. Usar CI es una habilidad útil, pero debes evitar desarrollar malos hábitos que no se traduzcan en un ambiente de equipo.
Creo que CI también sería una buena red de seguridad para asegurarme de tener todo mi código en un VCS, de que todas las pruebas se ejecutan rutinariamente, etc. Esas son cosas que pueden deslizarse fácilmente si nadie más tiene que construir su código. –
Matt, gracias por esta gran respuesta. – Animesh
La configuración y el mantenimiento de un sistema de CI que funcione pueden tener su propio costo de tiempo. Cuando eres un desarrollador en solitario, vale la pena considerar este costo en comparación con los beneficios que obtienes. Me gustaría decir que solo me molesto con CI si tienes compilaciones de ejecución tan larga que es mejor hacer que la construcción se ejecute en una máquina separada. – fatuhoku