Promoción de código: ¿compilation o binary?

Dada una estructura de tree fuente bastante básica como la siguiente:

 el maletero ------- 
    QA | --------
      Etapa | -------
         Prod | ------

Y un entorno que refleja eso (serveres de desarrollo, control de calidad, almacenamiento en etapas y producción): ¿cómo gestionan la promoción de códigos automática o manual? ¿Utiliza un server de CI para crear y promocionar en todas las etapas? CI en Dev para build los binarys que se utilizan en todo? Algún otro híbrido?

Estuve dando vueltas a un par de pensamientos. La primera es que cada promoción haría un get latest, build, y luego enviaría el resultado de la compilation al server correcto. El segundo es que en algún momento – QA o Staging – los binarys que se promovieron serían exactamente los mismos copydos en las otras etapas. El tercero es mantener un tree de fonts secundario para los binarys desplegados que se moverían automáticamente en bloque con la promoción del código. ¿Algún otro pensamiento o idea?

No quiere absolutamente ninguna posibilidad de que el código de producción no sea idéntico al QA probado, por lo que debe usar binarys.

También debe labelr las fonts utilizadas para crear cada compilation, por lo que si es necesario, puede reproducir la compilation en un entorno de desarrollo. Al less si cometes un error en este punto, las consecuencias no serán tan drásticas.

Hacemos uso de CI en la etapa de desarrollo y usamos comstackciones diarias que se promueven. Estas comstackciones diarias, si tienen éxito, se labeln en SVN para que no tengamos que save una copy separada de los files binarys. También se incluyen las bibliotecas de terceros a las que se hace reference para que una label sea una copy de origen exacta de lo que se comstack.