Como hacer Git Flow con Azure Repos

Hace ya unos cuantos años, en 2010, Vincent Driessen escribió una entrada que titulo «Un modelo exitoso de ramas para Git«. Han pasado 10 años y el modelo que definió sigue siendo extensamente usado. A ese modelo lo llamó Git Flow y aunque el mismo recomienda otros modelos mas sencillos en algunos escenarios (que abordaré en futuras entradas y videos), a día de hoy es un sistema muy utilizado.

En el siguiente video muestro que es y como usar Git Flow, usando Azure Repos y Visual Studio.

El sistema se basa en la gestión de un sistema de ramas donde existen dos ramas principales: master y develop. A partir de ahí podemos trabajar con ramas de feature, de hotfix y de releases.

Modelo de ramas propuesto por Git Flow
Modelo de ramas propuesto por Git Flow

Como pasar variables entre la Build y la Release en Azure DevOps

El otro día, montando un pileline en Azure DevOps, me encontré con una situación en la que según un valor que se obtiene en tiempo de Buid, tenia que ejecutar o no, una tarea en tiempo de Release.

Actualmente (no se si en el futuro lo implementarán) no se pueden pasar variables entre la build y la release, así que tuve que utilizar un pequeño workarround muy sencillo:

Guardar el valor en un fichero que añado al artifact, que luego leeré en la Release.

Existe en el marketplace una tarea que a priori hace esto mismo. Yo no la he probado pero parece que funciona. Si puedes, úsala y ya lo tendrás resuelto:

Variable Tools for Azure DevOps Services

Pero si estas trabajando para una organización, en la que no controlas la instalación de extensiones y que además tiene mucha burocracia, has de pensar muy bien cada petición de instalar nuevas extensiones. Si este es tu caso, aquí te explico como hacerlo con PowerShell.

Sigue leyendo Como pasar variables entre la Build y la Release en Azure DevOps

Tareas de Azure DevOps: ARM Outputs

Voy a iniciar una serie de entradas para ir comentando algunas tareas de Azure DevOps que por un motivo u otro me han facilitado la vida. Voy a empezar con ARM Outputs. Esta tarea no viene por defecto y hay que descargarla e instalarla desde el Market.

Esta tarea nos permite obtener valores que hemos definido como outoputs en una plantilla ARM para poder utilizarlos posteriormente como variables en las siguientes tareas. Por ejemplo, podemos definir como outputs las distintas claves de servicios creados por ARM, que después podemos usar para insertar en valores de settings.

Sigue leyendo Tareas de Azure DevOps: ARM Outputs

Azure Logic Apps. Como crearlas, gestionarlas y desplegarlas con Visual Studio

El otro día fui a la .Net Conf Barcelona 2018 y pude asistir a la charla que dieron @tonirecio y @barbosound en la que hablaban sobre como habían usado Azure logic apps para automatizar ciertas tareas recurrentes en su organización.

Logic apps es uno de esos temas en los que llevaba tiempo pensando, pero ya sabes, el tiempo es limitado y nunca me ponía a ello, por lo que esta charla me vino de maravillas para conocer de que va el tema e interesarme por ellas.

Azure Logic Apps te permite crear flujos de trabajo y procesos sin tirar una sola linea de código. Es el concepto de no tirar una sola linea de código lo que me tiraba un poco para atrás a la hora de ponerme con ello, pero me he dado cuenta de que bien usado y con cabeza, puede ser una herramienta muy potente que nos puede ahorrar muchas horas de trabajo y algún que otro dolor de cabeza. 

Como ejemplo, he creado una logic app que «escucha» Twitter y si detecta un hastag concreto, captura el Tweet y me lo envía por correo. Lo he hecho en cinco minutos. Por muy rápido que seas picando, seguro que tardas mas.

Sigue leyendo Azure Logic Apps. Como crearlas, gestionarlas y desplegarlas con Visual Studio

DevOps con Azure DevOps(III) – Crear una Build

Desde hace muy poco tiempo Visual Studio Team Services ha cambiado de nombre para pasar a llamarse Azure Devops y esto me ha obligado a cambiar el título de la serie de entradas en las que llevo trabajando un tiempo. A parte de eso y de todos los cambios de UI, la filosofía sigue siendo la misma. Ya hemos visto como crear una cuenta de Azure DevOps  y como crear un proyecto y añadir el repositorio de Git. El siguiente paso es crear y configurar una «Build» que se encargue compilar el código y generar los paquetes necesarios para automatizar el despliegue. Todo ello pensando en un futuro proceso de integración y despliegue continuo.

Sigue leyendo DevOps con Azure DevOps(III) – Crear una Build

Despliegue continuo en Azure con plantillas ARM

Las plantillas ARM (Azure Resource Manager) nos permiten parametrizar y automatizar la creación y despliegue de toda la infraestructura Azure necesaria en un proyecto (la web, el service plan, las bases de datos, etc…) permitiendo así la creación de nuevos entornos exactamente iguales en cuestión de minutos y sin esfuerzo. Además, como por defecto el despliegue es incremental, si modificamos algún elemento de la ecuación este se actualizará sin afectar al resto.

Vamos a ver como crear una plantilla ARM y como integrarla en el proceso de despliegue.

Sigue leyendo Despliegue continuo en Azure con plantillas ARM

WebCast sobre Integración y despliegue continuo (CI/CD)

Ante de ayer tuve la oportunidad de hacer un webcast en directo con la gente de @CATzure sobre integración y despliegue continuo, utilizando como herramienta Visual Studio Team Services.

Hable sobre que es integración y despliegue continuo y sobre todo hice una demo donde iba implementando cada uno de los puntos que traté: políticas de ramas, entornos, buils y releases.

Por algún motivo no puedo incrustar el vídeo aquí, por lo que os dejo la URL del canal de Youtube donde esta la grabación: https://www.youtube.com/watch?v=N2QjktDk82s

La presentación que he utilizado lo puedes ver/descargar haciendo click en «Seguir Leyendo».

Sigue leyendo WebCast sobre Integración y despliegue continuo (CI/CD)