Resumen
Habilitar compilaciones diferenciales
Activa el interruptor
Activa el interruptor Differential builds. La descripción dice: “Compilaciones más rápidas al reutilizar workspaces sin cambios.”
Cómo funciona
1. Encontrar una compilación base
success o partial) para usarla como base. Si no existe ninguna compilación base que cumpla los requisitos, se recurre automáticamente a una compilación completa.
2. Comparar blueprints
3. Asignar acciones al workspace
| Acción | Qué sucede | Cuándo se usa |
|---|---|---|
| Rebuild | Clona el repo y ejecuta todos los pasos del blueprint (initialize + maintenance) desde cero | El blueprint cambió desde la compilación padre |
| Inherit | Obtiene el código más reciente y ejecuta solo los pasos de maintenance | El blueprint no cambió: reutiliza la configuración de la compilación padre |
| Remove | Elimina el workspace de la instantánea | El workspace se eliminó de la configuración |
Para los workspaces heredados,
initialize no se ejecuta de nuevo. Escribe maintenance
de modo que sea autocontenido y pueda ejecutarse de forma independiente después de obtener
el código más reciente. Puede usar herramientas y runtimes ya instalados en la instantánea padre,
pero no debe requerir que initialize se ejecute inmediatamente antes ni depender de
variables de entorno que initialize haya escrito previamente en $ENVRC.4. Ejecuta la compilación
- Workspaces heredados ya tienen instaladas sus herramientas, runtimes y dependencias. El sistema descarga el código más reciente (
git pull) y ejecuta los comandos demaintenancepara actualizar las dependencias. - Workspaces recompilados se configuran desde cero: se vuelven a clonar y pasan por la secuencia completa de
initialize+maintenance. - Workspaces eliminados tienen sus directorios limpiados.
initialize durante las compilaciones diferenciales (ya que esas herramientas ya están presentes en la imagen principal) y ejecutan solo maintenance.
$ENVRC se restablece al inicio de cada compilación, incluidas las compilaciones diferenciales.
Las variables de entorno y las entradas de PATH escritas en $ENVRC por una compilación anterior
no se heredan. Si maintenance las necesita, debe configurarlas
por su cuenta.Cuándo se ejecuta una compilación completa en su lugar
- No existe una compilación principal — es la primera compilación o todas las compilaciones anteriores fallaron
- Cambió el blueprint de la organización o de Enterprise — los cambios globales afectan a todos los workspaces, por lo que es más seguro hacer una recompilación limpia
- Cambió el orden de los repos — como los repos pueden depender de la configuración de otros, reordenarlos desencadena una recompilación completa
- La compilación principal es demasiado antigua o incompatible — el sistema valida que la compilación principal sea adecuada
Ver el tipo de compilación
- Ve a Settings > Environment > Snapshots
- Haz clic en una compilación del historial
- La etiqueta Build kind muestra Differential (azul) o Full build (predeterminado)
- Differential: “Solo se vuelven a compilar los workspaces modificados; los que no han cambiado se heredan de la última compilación exitosa con la misma configuración”
- Full build: “Todos los workspaces se compilan desde cero”
Beneficios
| Beneficio | Descripción |
|---|---|
| Compilaciones más rápidas | Solo los espacios de trabajo modificados pasan por el proceso completo de configuración. Los espacios de trabajo heredados omiten initialize por completo. |
| Menor tráfico de red | Los espacios de trabajo sin cambios no vuelven a descargar herramientas, runtimes ni dependencias de gran tamaño. |
| Iteración más rápida | Al iterar sobre el blueprint de un solo repositorio, los demás repositorios no ralentizan la compilación. |
| La misma fiabilidad | Si algo parece incorrecto, el sistema recurre automáticamente a una compilación completa. También puedes iniciar manualmente una compilación completa en cualquier momento. |
Iniciar manualmente una compilación completa
initialize y maintenance.
Preguntas frecuentes
¿Activar las compilaciones diferenciales afecta a mis sesiones?
¿Activar las compilaciones diferenciales afecta a mis sesiones?
No. Las sesiones siempre se inician desde la instantánea final, independientemente de cómo se haya realizado la compilación. La única diferencia es la velocidad de compilación.
¿Qué pasa si una compilación diferencial genera una instantánea defectuosa?
¿Qué pasa si una compilación diferencial genera una instantánea defectuosa?
Fija una compilación anterior que sepas que funciona desde Settings > Environment > Snapshots y luego desencadena una compilación completa para obtener una instantánea limpia. También puedes desactivar por completo las compilaciones diferenciales para volver a las compilaciones completas.
¿Las compilaciones parciales pueden servir como compilación principal?
¿Las compilaciones parciales pueden servir como compilación principal?
Sí. Una compilación con estado
partial (algunos workspaces se completaron correctamente y otros fallaron) puede servir como compilación principal. El sistema hereda solo de los workspaces que se completaron correctamente en la compilación principal.
