Introducción

Azure Pipelines es un servicio de integración continua (CI) y entrega continua (CD) que permite compilar, probar y desplegar código de manera automática en cualquier plataforma y en cualquier nube. Este servicio es parte de Azure DevOps y soporta una amplia variedad de lenguajes de programación y tipos de proyectos.

Objetivos del Módulo

  • Comprender qué son los Pipelines de Azure y su importancia.
  • Configurar un pipeline básico.
  • Integrar pruebas automatizadas en el pipeline.
  • Desplegar aplicaciones utilizando Azure Pipelines.

¿Qué son los Pipelines de Azure?

Azure Pipelines permite automatizar la compilación y el despliegue de aplicaciones. Los pipelines pueden ser configurados para ejecutarse en respuesta a eventos como commits en un repositorio de código, o en horarios específicos.

Características Clave

  • Integración Continua (CI): Automatiza la compilación y prueba del código cada vez que se realiza un cambio.
  • Entrega Continua (CD): Automatiza el despliegue de aplicaciones a diferentes entornos.
  • Compatibilidad Multiplataforma: Soporta Windows, Linux y macOS.
  • Soporte para múltiples lenguajes: .NET, Java, Node.js, Python, PHP, Ruby, C++, Go, Xcode, entre otros.

Configuración de un Pipeline Básico

Paso 1: Crear un Proyecto en Azure DevOps

  1. Inicia sesión en Azure DevOps.
  2. Crea un nuevo proyecto o selecciona uno existente.

Paso 2: Configurar el Repositorio de Código

  1. Navega a la sección de "Repos" en tu proyecto.
  2. Clona el repositorio en tu máquina local o sube tu código existente.

Paso 3: Crear un Pipeline

  1. Ve a la sección de "Pipelines" en tu proyecto.
  2. Haz clic en "New Pipeline".
  3. Selecciona el repositorio de código que deseas usar.
  4. Elige la opción de configuración YAML o visual. Para este ejemplo, usaremos YAML.

Ejemplo de Archivo YAML para un Pipeline Básico

# Archivo azure-pipelines.yml
trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '5.x'
    installationPath: $(Agent.ToolsDirectory)/dotnet

- script: dotnet build --configuration Release
  displayName: 'Build Project'

- script: dotnet test --configuration Release
  displayName: 'Run Tests'

Explicación del Archivo YAML

  • trigger: Define la rama que activará el pipeline (en este caso, main).
  • pool: Especifica la imagen de la máquina virtual que se usará para ejecutar el pipeline.
  • steps: Lista de pasos a ejecutar. En este ejemplo:
    • UseDotNet@2: Instala el SDK de .NET.
    • dotnet build: Compila el proyecto.
    • dotnet test: Ejecuta las pruebas.

Integración de Pruebas Automatizadas

Las pruebas automatizadas son cruciales para asegurar la calidad del código. En el ejemplo anterior, ya hemos incluido un paso para ejecutar pruebas.

Ejemplo de Pruebas Unitarias en .NET

using NUnit.Framework;

namespace MyApp.Tests
{
    public class Tests
    {
        [SetUp]
        public void Setup()
        {
        }

        [Test]
        public void Test1()
        {
            Assert.Pass();
        }
    }
}

Configuración en el Pipeline

Asegúrate de que el comando dotnet test esté incluido en tu archivo YAML para ejecutar las pruebas automáticamente.

Despliegue de Aplicaciones

Azure Pipelines también permite automatizar el despliegue de aplicaciones a diferentes entornos como Azure App Service, Kubernetes, entre otros.

Ejemplo de Despliegue a Azure App Service

# Continuación del archivo azure-pipelines.yml
- task: AzureWebApp@1
  inputs:
    azureSubscription: 'NombreDeTuSuscripción'
    appName: 'NombreDeTuAppService'
    package: '$(System.DefaultWorkingDirectory)/**/*.zip'

Explicación del Despliegue

  • AzureWebApp@1: Tarea que despliega la aplicación a Azure App Service.
  • azureSubscription: Nombre de la suscripción de Azure.
  • appName: Nombre del App Service en Azure.
  • package: Ruta del paquete a desplegar.

Ejercicio Práctico

Ejercicio 1: Crear y Configurar un Pipeline Básico

  1. Crea un nuevo proyecto en Azure DevOps.
  2. Sube un proyecto de .NET al repositorio.
  3. Configura un pipeline utilizando el archivo YAML proporcionado.
  4. Asegúrate de que el pipeline se ejecute correctamente y que las pruebas pasen.

Ejercicio 2: Desplegar una Aplicación a Azure App Service

  1. Configura un App Service en Azure.
  2. Modifica el archivo YAML para incluir el paso de despliegue.
  3. Ejecuta el pipeline y verifica que la aplicación se despliegue correctamente.

Soluciones

Solución al Ejercicio 1

trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '5.x'
    installationPath: $(Agent.ToolsDirectory)/dotnet

- script: dotnet build --configuration Release
  displayName: 'Build Project'

- script: dotnet test --configuration Release
  displayName: 'Run Tests'

Solución al Ejercicio 2

trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '5.x'
    installationPath: $(Agent.ToolsDirectory)/dotnet

- script: dotnet build --configuration Release
  displayName: 'Build Project'

- script: dotnet test --configuration Release
  displayName: 'Run Tests'

- task: AzureWebApp@1
  inputs:
    azureSubscription: 'NombreDeTuSuscripción'
    appName: 'NombreDeTuAppService'
    package: '$(System.DefaultWorkingDirectory)/**/*.zip'

Conclusión

En este módulo, hemos aprendido sobre los Pipelines de Azure, su configuración básica, la integración de pruebas automatizadas y el despliegue de aplicaciones. Azure Pipelines es una herramienta poderosa que facilita la integración y entrega continua, mejorando la eficiencia y calidad del desarrollo de software.

Próximos Pasos

En el siguiente módulo, exploraremos los Repositorios de Azure, donde aprenderemos a gestionar el código fuente y colaborar de manera efectiva con otros desarrolladores.

© Copyright 2024. Todos los derechos reservados