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 TFVC icon proyecto de equipo de TFVC; no está disponible en los Git icon 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.