El mundo del software incorporado a menudo utiliza indicadores de tiempo de compilación, en el código de la aplicación en sí ( #define
/ #ifdef
declaraciones, por ejemplo) y / o en los archivos de configuración de herramientas de compilación ( makefile
's, por ejemplo).
Los indicadores de compilación se pueden usar, de manera similar, no solo para funciones, sino también para todo tipo de refactorización de código, migraciones, soporte de depuración, etc. Permiten comprometerse en la rama de integración cambios parciales o no verificados sin romper la compilación o causar regresiones en las características / proyectos que ya funcionan en la rama. Excelente para manejar arreglos de puntos junto con cambios de progreso grandes / arriesgados / lentos (que de lo contrario requerirían una rama de larga duración) de una manera de integración continua.
Pero además de verificar el código de rama ya existente para las regresiones, también es posible realizar verificaciones de progreso / estabilidad del nuevo código. Para esto, los indicadores de tiempo de compilación deben activarse.
Una forma de alternar las banderas sería usar, en una tubería de verificación separada del sistema de CI de la misma rama (si tiene soporte para dicha funcionalidad), un archivo de parcheo para alternar la bandera, que se aplicará a un espacio de trabajo separado antes del construir. Se construiría un conjunto diferente de artefactos en este espacio de trabajo y luego se verificaría.
Alternativamente, una rama de características de larga duración se puede extraer de la rama de integración principal, pero el único cambio en esta rama de características sería la bandera conmutada. Debido a este pequeño cambio, la rama de características se puede sincronizar automáticamente de forma extremadamente rápida, prácticamente ocultando muy de cerca la rama de integración principal. Una ejecución de CI separada en esta rama ya no necesitaría un archivo de parche preliminar. Sería trivial llevar tal rama de características incluso durante un período prolongado de tiempo.
También puede ser posible crear, en la rama de integración principal, nuevos artefactos de construcción que realmente serían solo clones de los artefactos de construcción existentes pero con las banderas activadas. De esta manera, ni el archivo de parche preliminar ni la rama de características serían necesarios para verificar el nuevo código, directamente en la rama principal.