Creación de varias ramas

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

Nota:

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Puede compilar cada solicitud de confirmación y extracción en el repositorio de Git mediante Azure Pipelines o TFS. En este tutorial, trataremos consideraciones adicionales al crear varias ramas en el repositorio de Git. Aprenderá a:

  • Configuración de un desencadenador de CI para ramas de temas
  • Creación automática de un cambio en la rama de tema
  • Excluir o incluir tareas para compilaciones basadas en la rama que se está compilando
  • Mantener alta la calidad del código mediante la creación de solicitudes de extracción
  • Uso de directivas de retención para limpiar compilaciones completadas

Prerrequisitos

  • Necesita un repositorio de Git en Azure Pipelines, TFS o GitHub con la aplicación. Si no tiene una, se recomienda importar la aplicación de .NET Core de ejemplo en el proyecto de Azure Pipelines o TFS, o bien la forzamiento en el repositorio de GitHub. Tenga en cuenta que debe usar Azure Pipelines para compilar un GitHub repositorio. No se puede usar TFS.

  • También necesita una compilación en funcionamiento para el repositorio.

Configuración de un desencadenador de CI para una rama de tema

Un flujo de trabajo común con Git es crear ramas temporales desde la rama principal. Estas ramas se denominan ramas de temas o características y le ayudan a aislar su trabajo. En este flujo de trabajo, se crea una rama para una característica determinada o corrección de errores. Finalmente, se vuelve a combinar el código con la rama principal y se elimina la rama de tema.

A menos que especifique un desencadenador en el archivo YAML, un cambio en cualquiera de las ramas desencadenará una compilación. Agregue el siguiente fragmento de código al archivo YAML en la main rama. Esto hará que los cambios en main las ramas y se feature/* puedan crear automáticamente.

trigger:
- main
- feature/*

Las compilaciones de YAML aún no están disponibles en TFS.

Creación automática de un cambio en la rama de tema

Ya está listo para la CI para la rama principal y las ramas de características futuras que coinciden con el patrón de rama. Cada cambio de código de la rama usará una canalización de compilación automatizada para garantizar que la calidad del código siga siendo alta.

Siga estos pasos para editar un archivo y crear una rama de tema.

  1. Vaya al código en Azure Repos, TFS o GitHub.
  2. Cree una rama para el código que comience por feature/ , por ejemplo, feature/feature-123 .
  3. Realice un cambio en el código en la rama de características y confirme el cambio.
  4. Vaya al menú Pipelines en Azure Pipelines o TFS y seleccione Compilaciones.
  5. Seleccione la canalización de compilación para este repositorio. Ahora debería ver una nueva compilación ejecutándose para la rama de tema. El desencadenador que creó anteriormente inició esta compilación. Espere a que finalice la compilación.

El proceso de desarrollo típico incluye el desarrollo de código localmente y la publicación periódica en la rama del tema remoto. Cada inserción que se realiza da como resultado una canalización de compilación que se ejecuta en segundo plano. La canalización de compilación le ayuda a detectar errores anteriormente y a mantener una rama de tema de calidad que se puede combinar de forma segura con main. La práctica de CI para las ramas de temas ayuda a minimizar el riesgo al combinar de nuevo con main.

Excluir o incluir tareas para compilaciones basadas en la rama que se está compilando

Normalmente, la rama principal genera artefactos implementables, como archivos binarios. No es necesario dedicar tiempo a crear y almacenar esos artefactos para ramas de características de corta duración. Implemente condiciones personalizadas en Azure Pipelines o TFS para que determinadas tareas solo se ejecuten en la rama principal durante una ejecución de compilación. Puede usar una sola compilación con varias ramas y omitir o realizar ciertas tareas en función de las condiciones.

Edite azure-pipelines.yml el archivo en la main rama, busque una tarea en el archivo YAML y agregue una condición a él. Por ejemplo, el siguiente fragmento de código agrega una condición para publicar la tarea de artefactos.

- task: PublishBuildArtifacts@1
  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))

Las compilaciones de YAML aún no están disponibles en TFS.

Validación de solicitudes de extracción

Use directivas para proteger las ramas al requerir compilaciones correctas antes de combinar las solicitudes de extracción. Tiene opciones para requerir siempre una nueva compilación correcta antes de combinar los cambios en ramas importantes, como la rama principal. Hay otras configuraciones de directiva de rama para compilar con menos frecuencia. También puede requerir un determinado número de revisores de código para ayudar a garantizar que las solicitudes de extracción sean de alta calidad y no generen compilaciones rotas para las ramas.

Repositorio de GitHub

A menos que especifique desencadenadores en el archivo YAML, las compilaciones de solicitudes de extracción pr se habilitan automáticamente para todas las ramas. Puede especificar las ramas de destino para las compilaciones de la solicitud de extracción. Por ejemplo, para ejecutar la compilación solo para las solicitudes de extracción que tienen como destino: main y feature/* :

pr:
- main
- feature/*

Para obtener más información, vea Desencadenadores.

Las compilaciones de YAML aún no están disponibles en TFS.

Azure Pipelines o repositorio de TFS

  1. Vaya al centro Repos en Azure Repos o TFS.
  2. Elija el repositorio y seleccione Ramas. Elija la rama principal.
  3. Implementará una directiva de rama para proteger la rama principal. Seleccione los puntos suspensivos a la derecha del nombre de la rama y seleccione Directivas de rama.
  4. Seleccione la casilla Proteger esta rama. Hay varias opciones para proteger la rama.
  5. En el menú Validación de compilación, elija Agregar directiva de compilación.
  6. Elija la canalización de compilación adecuada.
  7. Asegúrese de que el desencadenador está establecido en automático y el requisito de directiva está establecido en obligatorio.
  8. Escriba un nombre descriptivo para mostrar para describir la directiva.
  9. Seleccione Guardar para crear y habilitar la directiva. Seleccione Guardar cambios en la parte superior izquierda de la pantalla.
  10. Para probar la directiva, vaya al menú Solicitud de extracción Azure Pipelines o TFS.
  11. Seleccione Nueva solicitud de incorporación de cambios. Asegúrese de que la rama del tema está establecida para combinarse en la rama principal. Seleccione Crear.
  12. La pantalla muestra la directiva que se ejecuta.
  13. Seleccione el nombre de la directiva para examinar la compilación. Si la compilación se realiza correctamente, el código se combinará con main. Si se produce un error en la compilación, se bloquea la combinación.

Una vez completado el trabajo en la rama de tema y combinado con main, puede eliminar la rama de tema. A continuación, puede crear ramas de corrección de errores o características adicionales según sea necesario.

Uso de directivas de retención para limpiar las compilaciones completadas

Las directivas de retención permiten controlar y automatizar la limpieza de las distintas compilaciones. En el caso de las ramas de corta duración, como las ramas de tema, puede que desee conservar menos historial para reducir los costos de almacenamiento y desorden. Si crea compilaciones de CI en varias ramas relacionadas, será menos importante mantener las compilaciones para todas las ramas.

  1. Vaya al menú Pipelines en Azure Pipelines o TFS.

  2. Busque la canalización de compilación que ha configurado para el repositorio.

  3. Seleccione Editar en la parte superior derecha de la pantalla.

  4. En el nombre de la canalización de compilación, seleccione la pestaña Retención. Seleccione Agregar para agregar una nueva directiva de retención.

    Menú Retención

  5. Escriba feature/* en la lista desplegable Especificación de rama. Esto garantiza que todas las ramas de características que coincidan con el carácter comodín usarán la directiva.

  6. Establezca Días en 1 y Mínimo en 1.

  7. Seleccione el menú Guardar cola y, a continuación, Seleccione Guardar.

Las directivas se evalúan en orden, aplicando la primera directiva de coincidencia a cada compilación. La regla predeterminada de la parte inferior coincide con todas las compilaciones. La directiva de retención limpiará los recursos de compilación cada día. Conserva al menos una compilación en todo momento. También puede optar por mantener cualquier compilación determinada durante un período de tiempo indefinido.

Pasos siguientes

En este tutorial, ha aprendido a administrar CI para varias ramas en los repositorios de Git mediante Azure Pipelines o TFS.

Ha aprendido a:

  • Configuración de un desencadenador de CI para ramas de temas
  • Creación automática de un cambio en la rama de tema
  • Excluir o incluir tareas para compilaciones basadas en la rama que se está compilando
  • Mantener alta la calidad del código mediante la creación de solicitudes de extracción
  • Uso de directivas de retención para limpiar compilaciones completadas