Compilación de repositorios de TFVC

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Importante

TFVC solo es compatible con procesos clásicos y no admite YAML.

Elección del repositorio que se va a compilar

Al editar una canalización que usa un repositorio TFVC, tiene las opciones siguientes.

  • Clean
  • Especificar la ruta de acceso local
  • Etiquetar orígenes

Nombre del repositorio

Nombre del repositorio de TFVC.

Asignaciones (área de trabajo)

Incluya con un valor de tipo Asignar solo las carpetas que la canalización de compilación requiere. Si una subcarpeta de una carpeta asignada contiene archivos que la canalización de compilación no requiere, asígnele el valor de tipo Esconder.

Asegúrese de Asignar todas las carpetas que contengan archivos que la canalización de compilación requiere. Por ejemplo, si agrega otro proyecto, puede que tenga que agregar otra asignación al área de trabajo.

Esconda las carpetas que no necesita. De forma predeterminada, la carpeta raíz del proyecto está asignada en el área de trabajo. Esta configuración hace que el agente de compilación descargue todos los archivos en la carpeta de control de versiones del proyecto. Si esta carpeta contiene muchos datos, la compilación podría desechar los recursos del sistema de compilación y retrasar la canalización de compilación al descargar una gran cantidad de datos que no requiere.

Al quitar proyectos, busque asignaciones que puede quitar del área de trabajo.

Si se trata de una compilación de CI, en la mayoría de los casos debe asegurarse de que estas asignaciones coincidan con la configuración de filtro del desencadenador de CI en la pestaña Desencadenadores.

Para obtener más información sobre cómo optimizar un área de trabajo de TFVC, consulte Optimizar el área de trabajo.

Limpieza del repositorio local en el agente

Puede limpiar el directorio de trabajo del agente autohospedado de distintas formas antes de que se ejecute una compilación.

En general, para un rendimiento más rápido de los agentes autohospedados, no limpie el repositorio. En este caso, para obtener el mejor rendimiento, asegúrese de que también está compilando incrementalmente; para ello, deshabilite cualquier opción Limpiar de la tarea o herramienta que esté usando para compilar.

Si necesita limpiar el repositorio (por ejemplo, para evitar problemas causados por archivos residuales de una compilación anterior), se indican las opciones a continuación.

Nota:

La limpieza no es relevante si usa un agente hospedado por Microsoft porque en ese caso se obtiene un nuevo agente cada vez.

Si quiere limpiar el repositorio, seleccione true y, a continuación, seleccione una de las opciones siguientes:

  • Orígenes: la canalización de compilación deshace cualquier cambio y aplica scorch al área de trabajo actual en $(Build.SourcesDirectory).

  • Directorio de orígenes y salida: la misma operación que la opción Orígenes anterior, además de que elimina y vuelve a crear $(Build.BinariesDirectory).

  • Directorio de orígenes: elimina y vuelve a crear $(Build.SourcesDirectory).

  • Todos los directorios de compilación: elimina y vuelve a crear $(Agent.BuildDirectory).

Desencadenadores de integración continua

Seleccione Habilitar integración continua en la pestaña Desencadenadores para habilitar este desencadenador si quiere que la compilación se ejecute cada vez que alguien inserte código.

Desencadenador de CI.

Cambios por lotes

Seleccione esta casilla si muchos miembros del equipo cargan cambios con frecuencia y quiere reducir el número de compilaciones que está ejecutando. Si selecciona esta opción, cuando se ejecuta una compilación, el sistema espera hasta que esta se completa y, a continuación, pone en cola otra compilación de todos los cambios que aún no se hayan compilado.

Puede procesar los cambios por lotes y compilarlos juntos.

Filtros de ruta de acceso

Seleccione las rutas de acceso de control de versiones que quiere incluir y excluir. En la mayoría de los casos, debe asegurarse de que estos filtros sean coherentes con las asignaciones de TFVC. Puede usar filtros de ruta de acceso para reducir el conjunto de archivos que quiere para desencadenar una compilación.

Sugerencias:

  • Las rutas de acceso siempre se especifican en relación con la raíz del área de trabajo.
  • Si no establece filtros de ruta de acceso, la carpeta raíz del área de trabajo se incluye implícitamente de forma predeterminada.
  • Si excluye una ruta de acceso, tampoco puede incluirla a menos que la especifique en una carpeta más profunda. Por ejemplo, si excluye /tools, puede incluir /tools/trigger-runs-on-these.
  • El orden de los filtros de ruta de acceso no es importante.

inserción en el repositorio validada

Puede usar la inserción en el repositorio validada para protegerse frente a cambios importantes.

De forma predeterminada, está activada la opción Usar asignaciones de área de trabajo para filtros . Las compilaciones se desencadenan cada vez que se inserta en el repositorio un cambio en una ruta de acceso especificada en las asignaciones de origen.

De lo contrario, puede desactivar esta casilla y especificar las rutas de acceso del desencadenador.

Cómo afecta a los desarrolladores

Cuando los desarrolladores intentan insertar en el repositorio, se les pide que compilen sus cambios.

Solicitud de inserción en el repositorio validada

A continuación, el sistema crea un conjunto de cambios agregados pendientes de confirmación y lo compila.

Nota:

Si recibe un error como The shelveset _Build_95;Build\6bc8a077-3f27-4936-82e6-415fbd53ba07 could not be found for check-in, compruebe la configuración Limitar el ámbito de autorización del trabajo al proyecto actual en las canalizaciones que no son de versión y asegúrese de que no esté habilitada.

Para obtener más información sobre la experiencia de inserción en el repositorio validada, consulte Insertar en el repositorio en una carpeta controlada por una canalización de compilación de inserción en el repositorio validada.

Opción para ejecutar compilaciones de CI

De forma predeterminada, las compilaciones de CI no se ejecutan después de completar el proceso de inserción en el repositorio validada y los cambios se insertan en el repositorio.

Sin embargo, si quiere que las compilaciones de CI se ejecuten después de una inserción en el repositorio validada, seleccione la casilla Ejecutar desencadenadores de CI para los cambios confirmados. Al hacerlo, la canalización de compilación no agrega ***NO_CI*** a la descripción del conjunto de cambios. Como resultado, se ejecutan las compilaciones de CI afectadas por la inserción en el repositorio.

Algunas cosas más que debe saber

Preguntas más frecuentes

Al ejecutar una canalización, obtengo el error siguiente:

The shelveset <xyz> could not be found for check-in

  • ¿Está su ámbito de autorización del trabajo establecido en colección? Los repositorios de TFVC normalmente se propagan entre los proyectos de la colección. Puede que esté leyendo o escribiendo en una carpeta a la que solo se puede acceder cuando el ámbito es la colección completa. Puede establecerlo en la configuración de la organización o en la configuración del proyecto en la pestaña Canalizaciones.

Al ejecutar una canalización, obtengo el error siguiente:

The underlying connection was closed: An unexpected error occurred on a receive. ##[error]Exit code 100 returned from process: file name 'tf', arguments 'vc workspace /new /location:local /permission:Public

  • Normalmente es un error intermitente que se produce cuando el servicio experimenta problemas técnicos. Vuelva a ejecutar la canalización.

¿Qué es scorch?

Scorch es una eficaz herramienta de TFVC que garantiza que el control de código fuente del servidor y del disco local sean idénticos. Consulte Microsoft Visual Studio Team Foundation Server 2015 Power Tools.