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 de entrada validada para proteger una parte o toda la base del código 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 Compilar e implementar de forma 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. Para obtener más información acerca de cómo configurar un proceso BVT, vea Cómo: Configurar y ejecutar pruebas programadas después de compilar la aplicación.

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

Al definir una compilación con el desencadenador de 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.

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

Al definir una compilación con el desencadenador de compilaciones graduales, la compilación se pone en cola cuando se protege un cambio, pero se aplican los límites siguientes:

  • No se coloca en la cola ninguna compilación adicional si una compilación de esta definición de compilación ya se está ejecutando.

  • Puede restringir aún más la frecuencia de las compilaciones si activa la casilla No compilar con una frecuencia superior a n minutos y escriba un valor entero comprendido entre 0 y 2147483647.

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

Al definir una compilación con el desencadenador de entrada validada, los cambios que un miembro del equipo envía al sistema de control de versiones se colocan en un conjunto de cambios aplazados y se ponen en la 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 Definir una compilación de entrada validad para validar los 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

Al definir una compilación con el desencadenador de programación y desactivar la casilla Compilar incluso si no ha cambiado nada desde la compilación anterior, se pone en cola una compilación en los días y horas que especifique si se han 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.

SugerenciaSugerencia

Si está desarrollando una plantilla de proceso de compilación personalizada y selecciona Schedule como valor de la propiedad Reason de una sección Limitar las secciones del proceso de compilación según la causa (desencadenador) (actividad InvokeForReason) de la plantilla, en la mayoría de los casos probablemente debe seleccionar también ScheduleForced.

Desencadenador de programación (razón: ScheduleForced)

Al definir una compilación con el desencadenador de programación y activar la casilla Compilar incluso si no ha cambiado nada desde la compilación anterior, la compilación se pone en cola en 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.

SugerenciaSugerencia

Si está desarrollando una plantilla de proceso de compilación personalizada y selecciona ScheduleForced como valor de la propiedad Reason de una sección Limitar las secciones del proceso de compilación según la causa (desencadenador) (actividad InvokeForReason) de la plantilla, en la mayoría de los casos probablemente debe 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 Extending Team Foundation: Build.

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 una definición de compilación básica.

  • 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 Limitar las secciones del proceso de compilación según la causa (desencadenador) (actividad InvokeForReason).

Historial de cambios

Fecha

Historial

Motivo

Mayo de 2011

Se ha agregado un tema.

Mejora de la información.