Especificar desencadenadores y razones de compilación
Puede poner en cola manualmente una compilación siempre que sea necesario, pero, en la mayoría de los casos, las necesidades del equipo se resuelven mejor con los procesos de compilación definidos con desencadenadores automáticos. Cuando se desencadena una compilación, una razón concreta se registra en la propiedad Reason. En este tema se describe y explica cómo usar todos los desencadenadores y razones de compilación disponibles cuando se desarrolla el proceso de compilación.
Usar desencadenadores de compilación para lograr los objetivos del equipo
Proteger al equipo de las interrupciones de la compilación
Mantener la calidad mediante la integración continua
Ejecutar BVT nocturnos para comprobar la calidad del producto
Usar desencadenadores de compilación automáticos
Usar el desencadenador de integración continua para poner en cola una compilación cuando se protege un cambio
Usar el desencadenador de compilaciones graduales para poner en cola una compilación cuando se protege un cambio, pero con límites para la frecuencia con la que se ejecuta una compilación
Usar el desencadenador de entrada validada para poner en cola una compilación cuando un miembro del equipo intenta proteger un cambio y bloquear el cambio si se produce un error en la compilación
Usar el desencadenador de programación para poner en cola una compilación a intervalos periódicos
Poner en cola manualmente una compilación
Poner en cola una compilación
Poner en cola una compilación privada
Usar código personalizado para poner en cola una compilación
Trabajar con los desencadenadores y las razones de compilación
Usar desencadenadores de compilación para lograr los objetivos del equipo
Proteger al equipo de las interrupciones de la compilación
Cuando un desarrollador protege cambios que interrumpen la compilación, el resultado puede ser una gran molestia para los equipos pequeños. El costo para los equipos grandes puede ser caro si se tiene en cuenta la pérdida de productividad y los retrasos de la programación. Puede usar el desencadenador Protección controlada para proteger una parte o todo el código base frente a este problema.
Mantener la calidad mediante la integración continua
La integración continua es el proceso de integrar el código en un repositorio compartido con tanta frecuencia como sea posible. Durante la integración del código, una interrupción de la compilación o un error de prueba pueden indicar sin demoras que hay un error en el código. Puede usar el desencadenador de integración continua para implementar la integración continua. El desencadenador de compilaciones graduales es similar al de integración continua y puede ser útil si el sistema de compilación no es suficientemente eficaz para ejecutar una compilación cada vez que ejecuta una protección.
El desencadenador de entrada validada puede actuar como un enfoque aún más riguroso para la integración continua. El desencadenador de integración continua avisa al equipo de problemas como las interrupciones de la compilación o los errores en las pruebas unitarias básicas, pero el desencadenador de entrada validada evita que se escriban estos tipos de problemas en el código base.
Para obtener más información sobre cómo usar el sistema de compilación para admitir la integración continua, vea Configurar una compilación de integración continua.
Ejecutar BVT nocturnos para comprobar la calidad del producto
Puede programar que se ejecuten pruebas periódicas para evaluar la calidad de la compilación. Estas pruebas suelen denominarse pruebas de comprobación de la compilación (BVT) o pruebas de humo. Suelen constar de un amplio conjunto de pruebas que se utilizan para comprobar las principales áreas de una aplicación en una compilación concreta. Puede usar el desencadenador de programación para implementar una ejecución nocturna de BVT.
Para obtener información sobre el desencadenador de programación, vea Usar el desencadenador de programación para poner en cola una compilación a intervalos periódicos.
Usar desencadenadores de compilación automáticos
Debe especificar un desencadenador de compilación para la definición de compilación. En la mayoría de los casos, es conveniente que el proceso de compilación se ejecute automáticamente. Puede seleccionar uno de los desencadenadores automáticos que se describen en esta sección.
Usar el desencadenador de integración continua para poner en cola una compilación cuando se protege un cambio
Si define una compilación con el desencadenador Integración continua, la compilación se pone en cola cada vez que un miembro del equipo protege un cambio. El área de trabajo de la definición de compilación determina qué archivos desencadenan la definición de compilación. Para obtener más información sobre las áreas de trabajo de compilación, vea Trabajar con áreas de trabajo de compilación.
A las compilaciones desencadenadas por la integración continua se les asigna una propiedad Reason de IndividualCI.
Utilice el desencadenador Compilaciones graduales para compilar múltiples protecciones juntas a intervalos regulares
Si define una compilación con el desencadenador Compilaciones graduales, el sistema de compilación pone en cola una compilación de cada protección mientras la compilación no se ejecuta. Si la compilación se está ejecutando, el sistema espera hasta que se completa la compilación y coloca en la cola otra compilación de todas las protecciones que aún no se han compilado. También puede limitar la frecuencia de las compilaciones si activa la casilla No compilar con una frecuencia superior a n minutos y escribe un valor entero comprendido entre 0 y 2147483647.
Por ejemplo, podría tener un solo agente de compilación y podría finalizar la compilación cada 20 minutos. Si utiliza el desencadenador Integración continua y el equipo protege el código nueve veces entre las 10 a. m. y las 11 a. m., es posible que la última protección no se pueda compilar hasta la 1 p. m. Sin embargo, si utiliza el desencadenador Compilaciones graduales y especifica 60 minutos como intervalo, el mismo conjunto de protecciones podría estar compilado a las 11:20 a. m.
El área de trabajo de la definición de compilación determina qué archivos desencadenan la definición de compilación. Para obtener más información sobre las áreas de trabajo de compilación, vea Trabajar con áreas de trabajo de compilación.
A las compilaciones desencadenadas por compilaciones graduales se les asigna la propiedad Reason de BatchedCI.
Usar el desencadenador de entrada validada para poner en cola una compilación cuando un miembro del equipo intenta proteger un cambio y bloquear el cambio si se produce un error en la compilación
Puede utilizar este desencadenador solo en un proyecto de equipo de TFVC; no está disponible en los proyectos de equipo de Git.
Si define una compilación con el desencadenador Protección controlada, los cambios que un miembro del equipo envíe al sistema de control de versiones se colocarán en un conjunto de cambios aplazados y se pondrán en cola para compilarlos. La compilación debe producirse correctamente para que pueda completarse el proceso de protección. El área de trabajo de la definición de compilación determina qué controla la definición de compilación. Para obtener más información sobre las áreas de trabajo de compilación, vea Trabajar con áreas de trabajo de compilación.
A las compilaciones desencadenadas por la entrada validada se les asigna una propiedad Reason de CheckInShelveset.
Para obtener más información sobre cómo implementar el desencadenador de entrada validada, vea Utilizar un proceso de compilación de protección controlada para validar cambios. Para obtener más información sobre cómo afecta al equipo este tipo de definición de compilación, vea Proteger los cambios pendientes controlados por una compilación de protección controlada.
Usar el desencadenador de programación para poner en cola una compilación a intervalos periódicos
Desencadenador de programación
Si define una compilación con el desencadenador Programar y desactiva la casilla Compilar incluso si no ha cambiado nada desde la compilación anterior, la compilación se pondrá en cola los días y horas que especifique siempre que se hayan protegido los cambios desde la ejecución más reciente de esta definición de compilación. La compilación se pone en cola independientemente de si los cambios se asociaron a una última compilación válida.
A las compilaciones que se desencadenan de esta manera se les asigna una propiedad Reason de Schedule.
Sugerencia
Si está desarrollando una plantilla de proceso de compilación personalizada y selecciona Schedule como valor de la propiedad Reason de una sección InvokeForReason de la plantilla, en la mayoría de los casos probablemente deberá seleccionar también ScheduleForced.
Desencadenador de programación (razón: ScheduleForced)
Si define una compilación con el desencadenador Programar y activa la casilla Compilar incluso si no ha cambiado nada desde la compilación anterior, la compilación se pondrá en cola los días y horas que especifique. La compilación se pone en cola independientemente de si los cambios están protegidos.
A las compilaciones que se desencadenan de esta manera se les asigna una propiedad Reason de ScheduleForced.
Sugerencia
Si está desarrollando una plantilla de proceso de compilación personalizada y selecciona ScheduleForced como valor de la propiedad Reason de una sección InvokeForReason de la plantilla, en la mayoría de los casos probablemente deberá seleccionar también Schedule.
Poner en cola manualmente una compilación
En algunas situaciones, puede tener un proceso de compilación que no desee ejecutar automáticamente.
Su definición de compilación puede no estar preparada para las ejecuciones automáticas porque todavía está en desarrollo.
Podría tener un proceso de compilación especial que desea ejecutar solo manualmente.
En estas situaciones, puede seleccionar el desencadenador Manual. La definición de compilación se ejecutará únicamente cuando un miembro del equipo la ponga en cola manualmente.
Poner en cola una compilación
Puede poner en cola manualmente cualquier definición de compilación, aunque se haya definido con un desencadenador de compilación distinto de Manual. Cuando se pone en cola manualmente una compilación, Reason se establece en Manual. Para obtener más información sobre cómo poner en cola manualmente una compilación, vea Poner en cola una compilación.
Poner en cola una compilación privada
Si desea compilar los cambios que ha colocado en un conjunto de cambios aplazados, puede usar una compilación privada (también conocida como "compilación relacionada") para validar los cambios en el código antes de protegerlo. Cuando se pone en cola manualmente una compilación privada, Reason se establece en ValidateShelveset. Para obtener más información sobre cómo poner en cola una compilación privada, vea Poner en cola una compilación.
Usar código personalizado para crear una compilación completada
Puede desarrollar código personalizado que crea una compilación completada si aprovecha las clases del espacio de nombres Microsoft.TeamFoundation.Build. Cuando una compilación se pone en cola de esta manera, Reason se establece en UserCreated. Para obtener más información, vea Extensión de Team Foundation: compilación
Trabajar con los desencadenadores y las razones de compilación
Puede aprovechar los desencadenadores y las razones del proceso de compilación de las siguientes maneras:
Establezca el desencadenador para el proceso de compilación: en la definición de compilación, haga clic en la pestaña Desencadenador y, a continuación, seleccione el desencadenador que satisfaga mejor las necesidades del equipo. Para obtener más información acerca de cómo crear una definición de compilación, vea Crear o modificar una definición de compilación.
Defina qué razones de compilación acepta un proceso de compilación personalizado: puede usar la actividad InvokeForReason para incluir un segmento del proceso de compilación que desea ejecutar únicamente en las compilaciones que se han ejecutado por una razón determinada. Para obtener más información, vea Actividades de Team Foundation Build: InvokeForReason.