Recientemente, hace varios años, los desarrolladores hicieron las construcciones que fueron a los clientes. Esto fue obviamente un desastre por razones demasiado numerosas para enumerarlas.¿Qué herramientas recomienda para construir automáticamente su aplicación?
Luego, cuando comenzamos a aprender los errores de nuestras formas, buscamos una forma de autocompilar toda la aplicación en una máquina de creación dedicada. La cultura en ese momento era muy reacia a traer herramientas externas, por lo que construimos nuestro propio sistema de autobuild escribiendo una aplicación VB.
Esto funcionó bien por un tiempo, hasta que la estructura del proyecto comenzó a cambiar, se agregaron nuevos proyectos y necesitábamos construir la aplicación de diferentes maneras. Luego, las debilidades de nuestro autodesarrollador manual se hicieron evidentes y, con el tiempo, cada vez más onerosas. Esta enfermedad ha progresado hasta el punto en que el QA (propietario de nuestro proceso de compilación) ni siquiera puede mantener el autoconstructor porque requiere cada vez más habilidades de programación. Cada vez que agregamos un proyecto o cambiamos algo en un proyecto existente, consume más tiempo de desarrollador solo para que funcione. Hubo días en que no pudimos producir una construcción porque el sistema estaba roto.
Ahora estoy en una posición en la que puedo cambiar este proceso, y estoy buscando eliminar todo el sistema y poner algo más en su lugar. Mis objetivos son:
- Disponen de un sistema de autoconstrucción que se puede ejecutar sin interacción humana a una hora específica todos los días. Debería ser capaz de reunir todo el código fuente, compilar todas las aplicaciones, crear las configuraciones, poner los productos terminados en un recurso compartido de red, y posiblemente activar el sistema de prueba automatizado para poner en marcha (utilizamos QTP).
- El sistema de autoconstrucción debe ser lo suficientemente flexible como para adaptarse fácilmente a los cambios en el proyecto sin necesidad de una revisión importante.
- Debe ser lo suficientemente simple para que QA pueda ser el propietario del sistema y no requerir recursos del desarrollador para realizar cambios en la forma en que se crean.
¿Cuáles son sus experiencias? ¿Puedes recomendar un sistema de autoconstrucción? ¿Debería tener diferentes objetivos?
+1 para Cruise Control, I moonlight como ingeniero de construcción de mi empresa y lo uso para construcciones nocturnas (más de 300 teléfonos en varios productos) y también lo uso para versiones de lanzamiento. – omermuhammed
Icónicamente, ahora he cambiado a Hudson :) IMO, es mucho más refinado que CC y mucho más fácil configurar diferentes tipos de proyectos. – workmad3