Azure DevOps: Environment variables

Azure DevOps es la solución que ofrece Microsoft, siendo la sucesora a VSTS (Visual Studio Team Services), que permite abarcar la totalidad del ciclo de vida del desarrollo para ayudar a ofrecer software más rápido y de mejor calidad. Según palabras del propio Microsoft, Azure DevOps Services representan la oferta más completa que existe en la nube pública.

Adicional a los servicios de nube, Microsoft también ofrece Azure DevOps Server (sucesor de Team Fundation Server), como apuesta a la unificación de las herramientas y experiencias para el desarrollo e implementación de soluciones.

La plataforma Azure DevOps cuenta con los siguientes servicios:

  • Azure Pipelines: Servicios de CI/CD para crear, compilar, probar y desplegar proyectos con cualquier plataforma o nube, así como conectar repositorios de GitHub, Bitbucket (o cualquier otro repositorio de Git).
  • Azure Agents: Agentes disponibles para Windows, Linux y macOS (de forma incorporada), con workflows habilitados con soporte de contenedores y opciones de implementación para entornos Azure, AWS, Service Fabric, Kubernetes, VMs entre otros.
  • Azure Boards: Realizar el seguimiento del trabajo del equipo del proyecto con paneles Kanban, backlog del equipo, informes, seguimiento, etc.
  • Azure Artifacts: Soporte de paquetes NuGet, Maven y NPM (fuentes públicas y privadas).
  • Azure Repos: Repositorios públicos y privados de Git alojados en Azure.
  • Azure TestPlans: Gestionar planes para pruebas manuales, planificadas y exploratorias.

Comparto una entrada en el blog de Microsoft donde hablan de Azure DevOps: https://azure.microsoft.com/es-es/blog/introducing-azure-devops/

¿Azure Pipelines?

Antes de revisar en profundidad lo que el título de la publicación indica, podemos expresar primeramente que un pipeline es conceptualmente una forma automatizada de disponibilizar nuevas features de una aplicación a los usuarios finales (o usuarios de pruebas también). Los pipelines, también conocidos como CI/CD (Continuous Integration y Continuous delivery) definen el proceso en que el programador actualiza el código en el repositorio y de forma automática se inician una serie de pasos configurados donde transcurren ciertas tareas como tests unitarios hasta la distribución de los cambios en los diferentes ambientes.

Environment variables

Las variables de entorno o environment variables son valores que afectan (o condicionan) los procesos y el comportamiento de la ejecución de sistemas y entornos operativos. Así tenemos que en Azure DevOps todas las varibles declaradas en Azure Pipelines son ejecutadas como variables de entorno en los agentes y, por si fuera poco, todas las variables en los agentes pueden ser accesibles como simples variables en el pipeline.

Variables dentro de Azure Pipelines

Ahora que tenemos la base teórica vamos a ver un ejemplo práctico, para ello vamos a crear un pipeline simple utilizando el siguiente archivo .yml ya cargado en el repositorio y configurado en el pipeline:

Azure Pipeline demo

Es el build más simple que he escrito hasta ahora: Simplemente una tarea con PowerShell, donde se imprime la variable demo, definida en el pipeline (aún no, pero lo haremos):

Para definir esta variable, es necesario editar el pipeline y acceder a la sección Variables:

O de lo contrario, definir en el archivo .yml que utilizamos para construir el pipeline la variable de la siguiente manera:

variables:
  MyVariable: 'This is a variable value'

Luego, al ejecutar el build, vamos a obtener como resultado una tarea específica donde se imprime el resultado de la variable de entorno:

Más información:

Happy scripting!

Comments