¿Es una práctica estándar al configurar un servidor de integración continua para construir una versión de depuración y lanzamiento de cada proyecto? La mayoría de las veces los desarrolladores codifican con un conjunto de configuración de proyecto en modo de depuración habilitado y podría haber diferentes configuraciones de ruta de biblioteca, definiciones del compilador u otros elementos configurados de manera diferente entre Debug / Release que los haría actuar de manera diferente.
Configuré mi servidor CI para compilar Debug & Release de cada proyecto y me pregunto si lo estoy pensando demasiado. Mi suposición es que haré esto siempre que pueda obtener comentarios rápidos y una vez que eso suceda, luego empuje el Release a una compilación nocturna tal vez. ¿Hay una forma "estándar" de abordar esto?
fuente
Respuestas:
Construir ambas configuraciones no afectará, pero si tiene que elegir (especialmente debido a las limitaciones de tiempo de construcción), cree la configuración de lanzamiento.
En última instancia, desea compilar, probar, empaquetar e implementar la configuración que usarán sus clientes y encontrar cualquier problema antes de que lo hagan.
fuente
Solo lanzamiento.
Suponga que los desarrolladores están haciendo compilaciones de depuración de todos modos y que los peores errores son los de 'funciona en depuración'. ¡Cuanto más rápido pueda detectarlos y reducir los cambios que pueden haberlos causado, más felices estarán todos!
fuente
Recomiendo encarecidamente construir y probar ambos si se puede hacer en una noche.
fuente
Debería crear todo para lo cual existe la posibilidad de que nadie lo intente durante algún tiempo. Lo que significa que si solo tiene un objetivo de compilación, no necesita depurar en una integración continua, porque los desarrolladores lo notarán rápidamente. Pero la mayoría de las veces hay múltiples componentes y los componentes en los que no se está trabajando actualmente no serán construidos por los desarrolladores, pero aún pueden romperse por cambios en el código común. En tales casos, debe compilar todas las configuraciones para que no encuentre la compilación rota cuando necesite tocar dichos componentes.
Ahora, a menudo, construir todo en cada configuración lleva mucho tiempo, por lo que no se puede construir todo después de cada confirmación. En tal caso, realice las configuraciones de lanzamiento de los componentes más importantes cada vez y agregue una compilación nocturna de todo.
Actualmente trabajo en el proyecto, donde tenemos una compilación continua, que sondea el control de versiones cada 10 minutos y, aunque solo se trata de configuraciones seleccionadas, puede demorar más de 1 hora después de las confirmaciones más grandes. De lo que tenemos una compilación nocturna, que compila todos los componentes en todas las configuraciones y siempre hace una compilación limpia, que demora aproximadamente 5 horas. Y tenemos una compilación semanal, que genera lanzamientos en todas las variantes personalizadas y eso lleva más de un día entero.
fuente
Depende de tu proyecto. En mi proyecto actual, solo compilamos depuración (y ejecutamos pruebas unitarias) en cada confirmación mientras realizamos la versión de lanzamiento como parte de la "compilación de implementación".
En la última compañía en la que trabajé, tuvimos algunos problemas con la versión de lanzamiento que funcionaba de manera un poco diferente, por lo que creamos depuración y lanzamiento en cada confirmación y ejecutamos pruebas unitarias en ambos.
fuente