Configurar trigger de Integración Continua en VSTS para ejecutar una tarea de compilación al subir cambios en Source Control

Nota:

Este post es la continuación de la guía: Integración Continua para Android Xamarin.Forms usando VS Team Services, VS Source Control y VS Mobile Center, favor de realizar primero los paso del post antes de seguir con esta publicación.

Hasta este momento hemos creado la tarea de compilación para realizar integración continua en una aplicación de Android usando Xamarin.Forms, pero para optimizar este proceso de integración, vamos utilizar una característica de VSTS llamada: “Triggers”.

Los Triggers básicamente sirven para ejecutar la definición de compilación al realizar un cambio en un ruta especifica del repositorio de código, por ahora utilizaremos el Trigger de Integración Continua que ofrece VSTS.

En esta guía veremos como hacer integración continua al subir un cambio de nuestro código al repositorio de Source Control.

Pre requisitos

Activar Trigger de Integración Continua en VSTS

Ingresamos a nuestro proyecto en VSTS “https://app.vsaex.visualstudio.comy luego iremos a la definición de compilación del proyecto de Xamarin.Forms.
Activa el Trigger de Integración Continua para ejecutar la definición de compilación al realizar un cambio en nuestro repositorio:
image

Una vez activado este trigger podremos probar que realmente se hará la compilación y despliegue de los nuevos cambios en Mobile Center.

Realizar cambios en proyecto de Xamarin.Forms y subir cambios a Source Control
 
En Visual Studio, navegamos al archivo: “Xamarin.Forms.Android.CI –> MainPage.xaml” y realizamos el siguiente cambio en el texto:
 
“Welcome to Xamarin Forms! - Hi, this change is CI”
image
 
Ahora subimos cambios a Source Control para dispara el Trigger que configuramos en VSTS:
image

Una vez que se actualicé el repositorio de Source Control, el trigger va a ejecutar la tarea de compilación y va a desplegar la nueva versión de la app a Mobile Center:
image
image

Si navegamos al sitio de Mobile Center: https://mobile.azure.com/apps, podremos ver el nuevo paquete distribuido por VSTS:
image

Instalar aplicación desde Mobile Center

Para instalar la aplicación en nuestros dispositivos Android, solo necesitamos ingresar a la ruta: https://install.mobile.azure.com y luego iniciar sesión en Mobile Center.

Una vez en el sitio, navegamos a la aplicación: “Xamarin.Forms.Andorid.CI” y luego instalamos:

Screenshot_2017-05-13-16-27-19_thumb[1]Screenshot_2017-05-13-17-06-40_thumb[1]Screenshot_2017-05-13-16-31-37_thumb[2]

Screenshot_2017-05-13-23-40-46Screenshot_2017-05-13-17-08-13_thumb[1]Screenshot_2017-05-13-17-24-56_thumb[1]

Screenshot_2017-05-13-23-41-32

 

Done! con solo activar el trigger de Integración Continua en nuestra definición de compilación, hemos logrado automatizar la compilación y despliegue de una nueva versión de nuestra app al hacer un cambio en el repositorio de código.

Esta funcionalidad es muy buena y nos ayuda a agilar procesos, pero a su vez se requiere analizar si realmente podemos disparar la tarea de compilación en cada cambio. Un ejemplo de cuando no conviene activar esta funcionalidad, es cuando tu aplicación será  desplegada  a una tienda como App Store, y está nueva versión necesita ser analizada por terceros. Ellos revisan en cada publicación si la app cumple con sus estándares, considerando que la app necesita ser verificada, tenemos el riesgo de que nuestro cambio no salga a producción.
 
Para mitigar esta problemática, se pueden crear ramas como “Dev, QA, Prod” y el trigger se puede configurar para cuando se haga un “marge” a la rama de “Prod”, esté disparé una nueva tarea de compilación, pero esta vez ya será desplegada a una tienda, confiando que estos nuevos cambios, ya están probados por el equipo de QA.

 

Siguientes pasos:

 

Saludos!

 
 
 

Comments

Popular posts from this blog

Configurar y desplegar una Web API en Azure App Service Environment

Despliegue de contenedores Docker a Azure Web Apps

Patrones de diseño para aplicaciones de alta disponibilidad en Azure - Resilient Applications (Parte I: Retry Policy)

Conectar .NET Web API con Azure API Management