Integración Continua para Android Xamarin.Forms usando VS Team Services, VS Source Control y VS Mobile Center
Actualmente se utiliza el termino de “Integración Continua” al proceso de integración de código aun repositorio para luego disparar una serie de procesos, automatizando la compilación y despliegue de nuestra App para luego ser probada.
Este tipo de practicas nos permite adoptar la cultura de “DevOps” al agilizar los procesos que intervienen al desarrollar una nueva característica de la app.
En esta guía veremos como automatizar procesos con Team Services y luego desplegaremos hacia Mobile Center para lograr integración continua.
Procesos cotidianos después de integración de código:
1. Compilación
2. Pruebas automatizadas
3. Despliegue a otro ambiente
Tecnologías que veremos en esta guía:
1. Xamarin.Forms (Android)
2. Visual Studio Team Services
3. Visual Studio Mobile Center
4. Source Control
5. Visual Studio
Proceso de compilación y despliegue
Pre requisitos
- Cuenta en Visual Studio Team Services
- Visual Studio 2015+
- Xamarin instalado en Visual Studio
- Iniciar sesión en https://mobile.azure.com con tu cuenta de Microsoft
- Recuperación de paquetes de Nuget.
- Compilación de PCLs.
- Compilación de proyecto de Xamarin.
- Firmar el paquete (APK o .IPA)
- Despliegue del paquete generado de Xamarin.
Para crear una definición de compilación, vamos a nuestro proyecto en VSTS:
https://app.vsaex.visualstudio.com
Una vez que estemos en el sitio, damos clic en la opción “Set up Build –> New definition” y seguimos los pasos para crear la definición:
Ingresemos el API Token que generamos anteriormente en Mobile Center:
Configurar definición de compilación y agregar tarea de despliegue
Volvemos a nuestra definición “Xamarin.Forms.Android.CI” y damos clic en “Edit” y luego adamos clic en “Add Task” para agregar una tarea de despliegue a Mobile Center:
Ahora agregamos los datos de configuración de la tarea de despliegue:
1. Mobile Center Connection: Service Endpoint
2. App Slug: {username}/{app_identifier}
3. Binary File Path: ruta del APK generado
4. Symbols Type: Tipo de proyecto (en nuestro caso, Java por ser Android)
Nota: para obtener el App Slug simplemente vamos la sitio de Mobile Center y navegamos a nuestra app: https://mobile.azure.com/apps y obtenemos nuestro App Slug de la URL:
Configuración de obtención de recursos y Nugets
Vamos a seleccionar como fuente de código “This project” y luego seguimos a la sección de “NuGet Restore” para restaurar las dependencias de la aplicación:
Seleccionamos la versión 4.0.0 de NuGet y seleccionamos la solución de nuestra app.
Configurar compilación de proyecto de Xamarin Android
Seleccionamos la casilla “Create App Package (APK)” para generar el APK al compilar
Project: Ruta de proyecto de Xamarin Android
Output Directory: Ruta donde se va a almacenar el APK
Configuration: Release, Debug, Ad Hoc, etc
Ahora vamos a configurar el compilador (MS Build) seleccionando “MS Build x64” y siempre compilaremos con la ultima versión.
También vamos a configurar el JDK de Java seleccionando el JDK 8 y JDK Architecture x64
Crear Keystore para la aplicación de Android
La manera mas fácil de crear la Keystore es dando “Archive” en Visual Studio para luego generar una Keystore para una aplicación “Ad Hoc”:
Damos clic en “Distribute” y luego el canal de distribución “Ad Hoc”:
Damos clic en “Agregar” y luego vamos a llenar los datos necesarios para generar nuestra Keystore:
Una vez generado nuestro Keystore, damos doble clic en “myapp” para ver el detalle y luego ir a la ruta del archivo en file system:
Subir Keystore a Source Control
Para poder obtener el Keystore de nuestra aplicación desde VSTS, es necesario tener el Keystore almacenado en algún repositorio, en nuestro caso vamos a subirlo a Source Control para luego hacer referencia desde nuestra tarea de compilación:
Vamos a Team Explorer –> Source Control Explorer y luego creamos una carpeta que se llamé “Keystore” y agregamos los archivos al repositorio:
Por ultimo hacemos check-in de nuestros cambios:
Configurar Signing and aligning y agregar Keystore de nuestro proyecto
Para firmar nuestra aplicación con el Keystore que generamos anteriormente, es necesario agregar variables para la contraseña del Keystore y Key password de la App.
Damos clic en la pestaña “Variables” y luego ingresamos lo siguiente:
1. KeyStorePass
2. KeyPass
Keystore File: Ruta de Keystore en repositorio:
Keystore Password: Agregamos la variable que creamos anteriormente. - $(KeyStorePass)
Key Password: Agregamos la variable que creamos anteriormente. - $(KeyPass)
Alias: Ingresamos el mismo “Alias” que ingresamos al generar la Keystore. - (MyApp)
Ya que tenemos todo configurado, es tiempo de encolar nuestra nueva tarea de compilación
Ejecutar tarea de compilación
Para ejecutar la tarea de compilación, solo damos clic en “Queue” y luego seleccionamos el Host donde va a ejecutarse la compilación, por ahora dejaremos el Host por default.
Después de unos minutos de ejecución, veremos como cada paso va ejecutándose y dejando un log de acciones que se están procesando.
Una vez que la compilación finalice correctamente, vamos a recibir dos notificación por correo:
1. VSTS envía correo de notificación de compilación exitosa
2. Mobile Center envía correo de notificación de nuevo despliegue de aplicación en la plataforma.
Podemos navegar al sitio: https://mobile.azure.com/apps para ver nuestra nueva distribución de la app de Xamarin.Forms:
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:
Listo!! Hemos logrado implementar una tarea de compilación de Integración Continua con VSTS desplegando en Mobile Center.
Una de las grandes ventajas que tenemos al utilizar VSTS, es que tenemos una gran variedad de servicios que podemos configurar para agilizar y automatizar procesos, todo esto de una manera muy sencilla.
El motivo por el cual no compilamos directo en Mobile Center, es por que actualmente las tareas de compilación integradas en Mobile Center no soportar vinculación con repositorios de VS Source Control, únicamente admite repositorios Git, sin embargo, sí podríamos utilizar VSTS con repositorios Git.
Felicidades! ahora ya aprendimos como crear uno de los proceso mas importantes en la cultura DevOps.
Siguientes pasos:
Saludos!
Comments
Post a Comment