SlideShare una empresa de Scribd logo
1 de 34
INTEGRACIÓN
CONTINUA CON
APPS XAMARIN
Como pasar Builds y test unitarios de Apps
móviles multiplataforma Xamarin desde
TeamCity.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
Javier Suárez
Microsoft MVP Windows Platform
Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
SOFTWARE
QUE HACE
BUILDS DE
OTRO
SOFTWARE
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿QUÉ VAMOS A VER?
Un vistazo a la agenda
Un vistazo rápido a que es la
integración continua, que puede hacer
por nosotros además de que es
necesario.
Integración Continua
Veremos que opciones tenemos
disponible con pros y contras.
Opciones disponibles
Nos centraremos en utilizar Team City
que configuraremos para desplegar,
compilar y pasar tests unitarios de
Apps Xamarin.
Configuración y uso
Preguntas traen respuestas y
respuestas más preguntas. Al final de
la sesión tendremos unos minutos
para resolver todas las dudas que han
surgido.
Preguntas y Respuestas
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿INTEGRACIÓN CONTINUA?
¿Qué es?
La integración continua consiste en
hacer integraciones automáticas de
un Proyecto lo más a menudo
possible para así detector fallos
cuantos antes.
Entendemos por integración la
compilación y ejecución de
pruebas.
Wikipedia
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
INTEGRACIÓN CONTINUA
Workflow
Resultados
Repositorio de
código
Servidor BUILD
Desarrollador
App
Build
Ejecutar tests
Unitarios
Commit
Código
Tests Unitarios
1º
2º
3º
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿QUÉ NOS APORTA LA INTEGRACIÓN
CONTINUA?Beneficios
“La integración continua no evitará que se produzcan
bugs, pero si nos permite encontrarlos y solucionarlos
de una forma dramáticamente más fácil”
Martin Flowler
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿QUÉ NOS APORTA LA INTEGRACIÓN
CONTINUA?Beneficios. Encontrar errores más rápido!
• Detectar errores
con mayor rapidez
y antelación.
• Más sencillo de
corregir.
• Más barato.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿QUÉ NOS APORTA LA INTEGRACIÓN
CONTINUA?Beneficios. En mi máquina funciona…
• Consistencia. Builds
reproducibles.
• La App funcionará en
cualquier entorno con las
mismas condiciones.
• Evitamos la “contaminación
de la Build”
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
VENTAJAS INTEGRACIÓN CONTINUA
Poder desplegar en cualquier momento
• Necesitamos entregar una version al
cliente…
• ¿Para cuando?
• AHORA
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿QUÉ NOS APORTA LA INTEGRACIÓN
CONTINUA?Beneficios. Minimiza problemas en Merges.
• Una integración continua
con Builds frecuentes
tiende a forzar Commits
más pequeños.
• Más fácil de hacer
rollback.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
CONTROL DE CÓDIGO FUENTE
Opciones
Team Foundation Server
o
Visual Studio Online
Git / GitHub
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
CI SOFTWARE
TFS
• Mucho más que CI
• Sólo para Windows. Requiere utilizat
Mac Build Host.
• Requiere Xamarin Pro o Business.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
CI SOFTWARE
TeamCity
• Fácil de instalar.
• Windows & OSX.
• Versión gratuita.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
CI SOFTWARE
Jenkis
• Open Source
• Windows & OSX
• Fácil de instalar
• Enorme cantidad de plug-ins
SETUP
1. Servidor de control de
código Fuente.
2. Servidor Integración
Continua.
3. Instalar y activar Xamarin
Studio.
4. Preparar Build script.
5. Configurar la Build en el
servidor de Integración
Continua.
MAC para la compilación de Apps
iOS. Suficiente MAC Mini.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿PORQUE CREAR UN SCRIPT?
La importancia del Script
• Traceable
• Los Devs pueden usarlo también!
• Documentación
• Mayor facilidad a la hora de mantenerlo
todo
• Simplifica la configuración del servidor
de integración
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
iOS BUILD
Compilación en iOS
/Applications/Xamarin Studio.app/Contents/MacOS/mdtool
Mdtool build
-t:Build
-c:AppStore
MyApp.sln
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
iOS PACKAGE
Crear paquete en iOS
Zip –r –y
MyApp.zip
Path/to/MyApp.app
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
ANDROID BUILD
Compilación en Android
Windows: msbuild
OSX: xbuild
Xbuild build
/t:Build
/p:Configuration=Release
MyApp.sln
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
ANDROID PACKAGE
Crear paquete en Android
Windows: msbuild
OSX: xbuild
Xbuild build
/t:PackageForAndroid
/p:Configuration=Release
MyAndroidApp.csproj
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
ANDROID PACKAGE
Crear paquete en Android
Jarsigner
-signal SHA1withRSA –digestalg SHA1
-keystore <key file>
-storepass <password>
-signedjar path/to/MyApp-Signed.apk
Path/to/MyApp.apk <keystore alias>
Zipalign –f –v 4
Path/to/MyApp-Signed.apk
Path/to/MyApp-Aligned.apk
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
RESTAURACIÓN DE PAQUETES
NuGet
NuGet
Mono NuGet.exe restore path/to/App.sln
Xamarin Components
Mono Xamarin-component.exe restore
path/to/App.sln
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
XAMARIN.UITEST
Podemos lanzarlos con cualquier runner de NUnit
Nunit-console
Path/to/TestAssembly.dll
-xml TestResults.xml
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿PORQUE CREAR UN SCRIPT?
F# MAKE
• F# Make o más conocido como FAKE,
es un Sistema de automatización de
Builds.
• Similar a Make o Rake.
• DSL sin necesidad de F#. Si
necesitamos más funcionalidad que la
disponible por defecto escribiremos
código F# o referencias a librerías .NET.
• Funciona en Windows y OSX.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
HOLA MUNDO FAKE
F# MAKE
#r "tools/FAKE/tools/FakeLib.dll" // include Fake lib
open Fake
Target "Test" (fun _ ->
trace "Testing stuff..."
)
Target "Deploy" (fun _ ->
trace "Deploy stuff..."
)
"Test" // define the dependencies
==> "Deploy"
Run "Deploy"
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMO
BUILDs automáticas de Apps Xamarin con Team City
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
ENTREGA DE LA APLICACIÓN
HockeyApp
• Podemos subir versiones de la
App de manera automática desde
nuestras Builds.
• Podemos notificar a clientes o
testers.
• Recibir feedback.
• Crashs.
• API para desarrolladores.
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
TEST DE UI. XAMARIN TEST CLOUD
Más de 1200 dispositivos disponibles
• Creamos tests desde Visual
Studio simulando las
interacciones propias del
usuario.
• Integración con TeamCity
pero tambien con TFS,
Jenkins, etc.
• Obtenemos informaicón con
capturas, rendimento, etc.
que podemos incluir en
reports de CI (Nightly).
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
CONCLUSIONES INTEGRACIÓN CONTINUA
¿Qué hemos aprendido?
• Automatización
• Commits más frecuentes
• Builds continuas, se detectan fallos
más rápido
• No se sube código que rompa la
Build
• Corrección de bugs con mayor
facilidad y rapidez
• Build en cualquier entorno destino
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
¿PREGUNTAS y RESPUESTAS?
Dudas?
P&R
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
ENLACE AL MATERIAL
Slides y ejemplo
https://github.com/jsuarezruiz/Events/tree/
master/CartujaDotNet/ALMdeando
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
GRACIAS a TODOS
Por vuestro tiempo!
Javier Suárez
Microsoft MVP Windows Platform Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
INTEGRACIÓN CONTINUA CON
XAMARINJAVIER SUÁREZ RUIZ
.
.
INTEGRACIÓN CONTINUA CON APPS XAMARIN
Como pasar Builds y test unitarios de Apps móviles multiplataforma Xamarin desde TeamCity.

Más contenido relacionado

La actualidad más candente

Novedades en Visual Studio Online
Novedades en Visual Studio OnlineNovedades en Visual Studio Online
Novedades en Visual Studio OnlineJavier Suárez Ruiz
 
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinCrear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinJavier Suárez Ruiz
 
Conociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema XamarinConociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema XamarinJavier Suárez Ruiz
 
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.FormsIntroducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.FormsJavier Suárez Ruiz
 
Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4Javier Suárez Ruiz
 
Introducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones XamarinIntroducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones XamarinJavier Suárez Ruiz
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossJavier Suárez Ruiz
 
Xamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinXamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinJavier Suárez Ruiz
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSJavier Suárez Ruiz
 
re-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades Xamarinre-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades XamarinJavier Suárez Ruiz
 
Arquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appArquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appBorja García Cueto
 
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...Javier Suárez Ruiz
 
Extendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom RendersExtendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom RendersJavier Suárez Ruiz
 
Codemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller XamarinCodemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller XamarinJavier Suárez Ruiz
 
Xamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a XamarinXamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a XamarinJavier Suárez Ruiz
 

La actualidad más candente (20)

Xamarin for Everyone
Xamarin for EveryoneXamarin for Everyone
Xamarin for Everyone
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Novedades en Visual Studio Online
Novedades en Visual Studio OnlineNovedades en Visual Studio Online
Novedades en Visual Studio Online
 
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinCrear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
 
Conociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema XamarinConociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema Xamarin
 
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.FormsIntroducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
 
Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4
 
Introducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones XamarinIntroducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones Xamarin
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCross
 
Xamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinXamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller Xamarin
 
Desktop App Converter
Desktop App ConverterDesktop App Converter
Desktop App Converter
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - KeynoteReconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Keynote
 
re-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades Xamarinre-Connect Madrid: Novedades Xamarin
re-Connect Madrid: Novedades Xamarin
 
Arquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appArquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera app
 
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
 
Extendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom RendersExtendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom Renders
 
Codemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller XamarinCodemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller Xamarin
 
Extendiendo Xamarin.Forms
Extendiendo Xamarin.FormsExtendiendo Xamarin.Forms
Extendiendo Xamarin.Forms
 
Xamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a XamarinXamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a Xamarin
 

Destacado

Arquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinArquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinJavier Suárez Ruiz
 
Desarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinDesarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinJavier Suárez Ruiz
 
Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Javier Suárez Ruiz
 
Desarrollo de aplicaciones Windows Phone con Silverlight 8.1
Desarrollo de aplicaciones Windows Phone con Silverlight 8.1Desarrollo de aplicaciones Windows Phone con Silverlight 8.1
Desarrollo de aplicaciones Windows Phone con Silverlight 8.1Javier Suárez Ruiz
 
Xamarin Dev Days Madrid - Xamarin.Forms
Xamarin Dev Days Madrid - Xamarin.FormsXamarin Dev Days Madrid - Xamarin.Forms
Xamarin Dev Days Madrid - Xamarin.FormsJavier Suárez Ruiz
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsJavier Suárez Ruiz
 
Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016Javier Suárez Ruiz
 
SVQDC - Desarrollo de Apps apra Hololens
SVQDC - Desarrollo de Apps apra HololensSVQDC - Desarrollo de Apps apra Hololens
SVQDC - Desarrollo de Apps apra HololensJavier Suárez Ruiz
 
Introducción al desarrollo de Apps en Windows 10
Introducción al desarrollo de Apps en  Windows 10Introducción al desarrollo de Apps en  Windows 10
Introducción al desarrollo de Apps en Windows 10Javier Suárez Ruiz
 
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
[dotNetSpain2016] Aumentando nuestra productividad en XamarinJavier Suárez Ruiz
 
Adaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletasAdaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletasJavier Suárez Ruiz
 

Destacado (12)

Arquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinArquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones Xamarin
 
Desarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinDesarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con Xamarin
 
Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One
 
Desarrollo de aplicaciones Windows Phone con Silverlight 8.1
Desarrollo de aplicaciones Windows Phone con Silverlight 8.1Desarrollo de aplicaciones Windows Phone con Silverlight 8.1
Desarrollo de aplicaciones Windows Phone con Silverlight 8.1
 
Xamarin Dev Days Madrid - Xamarin.Forms
Xamarin Dev Days Madrid - Xamarin.FormsXamarin Dev Days Madrid - Xamarin.Forms
Xamarin Dev Days Madrid - Xamarin.Forms
 
Interfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.FormsInterfaces nativas Cross-Platform con Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.Forms
 
Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016
 
Testing de Apps Xamarin
Testing de Apps XamarinTesting de Apps Xamarin
Testing de Apps Xamarin
 
SVQDC - Desarrollo de Apps apra Hololens
SVQDC - Desarrollo de Apps apra HololensSVQDC - Desarrollo de Apps apra Hololens
SVQDC - Desarrollo de Apps apra Hololens
 
Introducción al desarrollo de Apps en Windows 10
Introducción al desarrollo de Apps en  Windows 10Introducción al desarrollo de Apps en  Windows 10
Introducción al desarrollo de Apps en Windows 10
 
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
 
Adaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletasAdaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletas
 

Similar a Integración Continua Xamarin

Integración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineIntegración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineErnesto Cardenas Cangahuala
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfEliasChoque14
 
Integración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerIntegración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerErnesto Cardenas Cangahuala
 
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Javier Suárez Ruiz
 
Visual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event SevillaVisual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event SevillaJavier Suárez Ruiz
 
Novedades Xamarin Connect(); 2017
Novedades Xamarin Connect(); 2017Novedades Xamarin Connect(); 2017
Novedades Xamarin Connect(); 2017Javier Suárez Ruiz
 
Temario java web_j2_ee_02
Temario java web_j2_ee_02Temario java web_j2_ee_02
Temario java web_j2_ee_02anyeni
 
TEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOTEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOAnyeni Garay
 
Temario java web_j2_ee_02
Temario java web_j2_ee_02Temario java web_j2_ee_02
Temario java web_j2_ee_02anyeni
 
TEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOTEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOanyeni
 
TEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOTEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOanyeni
 
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsDevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsAmazon Web Services LATAM
 
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsDevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsAmazon Web Services LATAM
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosIrving Muñoz
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosIrving Muñoz
 
Máquina virtual
Máquina virtualMáquina virtual
Máquina virtualjabraham_g
 

Similar a Integración Continua Xamarin (20)

Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Integración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineIntegración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio Online
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
 
Integración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerIntegración Continua usando Team Foundation Server
Integración Continua usando Team Foundation Server
 
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
 
Visual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event SevillaVisual Studio 2017 Launch Event Sevilla
Visual Studio 2017 Launch Event Sevilla
 
Novedades Xamarin Connect(); 2017
Novedades Xamarin Connect(); 2017Novedades Xamarin Connect(); 2017
Novedades Xamarin Connect(); 2017
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Temario java web_j2_ee_02
Temario java web_j2_ee_02Temario java web_j2_ee_02
Temario java web_j2_ee_02
 
TEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOTEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLO
 
Temario java web_j2_ee_02
Temario java web_j2_ee_02Temario java web_j2_ee_02
Temario java web_j2_ee_02
 
TEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOTEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLO
 
TEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLOTEMA Nº 2: ENTORNO DE DESARROLLO
TEMA Nº 2: ENTORNO DE DESARROLLO
 
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsDevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
 
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsDevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
 
Modelos de negocio en la nube
Modelos de negocio en la nubeModelos de negocio en la nube
Modelos de negocio en la nube
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
Máquina virtual
Máquina virtualMáquina virtual
Máquina virtual
 

Más de Javier Suárez Ruiz

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitJavier Suárez Ruiz
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Javier Suárez Ruiz
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersJavier Suárez Ruiz
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsJavier Suárez Ruiz
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellJavier Suárez Ruiz
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsJavier Suárez Ruiz
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinJavier Suárez Ruiz
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!Javier Suárez Ruiz
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloJavier Suárez Ruiz
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinJavier Suárez Ruiz
 

Más de Javier Suárez Ruiz (20)

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community Toolkit
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI Handlers
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
 
#XamarinUIJuly Summary
#XamarinUIJuly Summary#XamarinUIJuly Summary
#XamarinUIJuly Summary
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.Forms
 
Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.Forms
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller Xamarin
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!
 
Novedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 PreviewNovedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 Preview
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrollo
 
Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas Xamarin
 

Último

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 

Último (6)

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 

Integración Continua Xamarin

  • 1. INTEGRACIÓN CONTINUA CON APPS XAMARIN Como pasar Builds y test unitarios de Apps móviles multiplataforma Xamarin desde TeamCity.
  • 2. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . Javier Suárez Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 4. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿QUÉ VAMOS A VER? Un vistazo a la agenda Un vistazo rápido a que es la integración continua, que puede hacer por nosotros además de que es necesario. Integración Continua Veremos que opciones tenemos disponible con pros y contras. Opciones disponibles Nos centraremos en utilizar Team City que configuraremos para desplegar, compilar y pasar tests unitarios de Apps Xamarin. Configuración y uso Preguntas traen respuestas y respuestas más preguntas. Al final de la sesión tendremos unos minutos para resolver todas las dudas que han surgido. Preguntas y Respuestas
  • 5. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿INTEGRACIÓN CONTINUA? ¿Qué es? La integración continua consiste en hacer integraciones automáticas de un Proyecto lo más a menudo possible para así detector fallos cuantos antes. Entendemos por integración la compilación y ejecución de pruebas. Wikipedia
  • 6. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . INTEGRACIÓN CONTINUA Workflow Resultados Repositorio de código Servidor BUILD Desarrollador App Build Ejecutar tests Unitarios Commit Código Tests Unitarios 1º 2º 3º
  • 7. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios “La integración continua no evitará que se produzcan bugs, pero si nos permite encontrarlos y solucionarlos de una forma dramáticamente más fácil” Martin Flowler
  • 8. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios. Encontrar errores más rápido! • Detectar errores con mayor rapidez y antelación. • Más sencillo de corregir. • Más barato.
  • 9. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios. En mi máquina funciona… • Consistencia. Builds reproducibles. • La App funcionará en cualquier entorno con las mismas condiciones. • Evitamos la “contaminación de la Build”
  • 10. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . VENTAJAS INTEGRACIÓN CONTINUA Poder desplegar en cualquier momento • Necesitamos entregar una version al cliente… • ¿Para cuando? • AHORA
  • 11. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios. Minimiza problemas en Merges. • Una integración continua con Builds frecuentes tiende a forzar Commits más pequeños. • Más fácil de hacer rollback.
  • 12. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . CONTROL DE CÓDIGO FUENTE Opciones Team Foundation Server o Visual Studio Online Git / GitHub
  • 13. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . CI SOFTWARE TFS • Mucho más que CI • Sólo para Windows. Requiere utilizat Mac Build Host. • Requiere Xamarin Pro o Business.
  • 14. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . CI SOFTWARE TeamCity • Fácil de instalar. • Windows & OSX. • Versión gratuita.
  • 15. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . CI SOFTWARE Jenkis • Open Source • Windows & OSX • Fácil de instalar • Enorme cantidad de plug-ins
  • 16. SETUP 1. Servidor de control de código Fuente. 2. Servidor Integración Continua. 3. Instalar y activar Xamarin Studio. 4. Preparar Build script. 5. Configurar la Build en el servidor de Integración Continua. MAC para la compilación de Apps iOS. Suficiente MAC Mini.
  • 17. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿PORQUE CREAR UN SCRIPT? La importancia del Script • Traceable • Los Devs pueden usarlo también! • Documentación • Mayor facilidad a la hora de mantenerlo todo • Simplifica la configuración del servidor de integración
  • 18. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . iOS BUILD Compilación en iOS /Applications/Xamarin Studio.app/Contents/MacOS/mdtool Mdtool build -t:Build -c:AppStore MyApp.sln
  • 19. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . iOS PACKAGE Crear paquete en iOS Zip –r –y MyApp.zip Path/to/MyApp.app
  • 20. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ANDROID BUILD Compilación en Android Windows: msbuild OSX: xbuild Xbuild build /t:Build /p:Configuration=Release MyApp.sln
  • 21. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ANDROID PACKAGE Crear paquete en Android Windows: msbuild OSX: xbuild Xbuild build /t:PackageForAndroid /p:Configuration=Release MyAndroidApp.csproj
  • 22. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ANDROID PACKAGE Crear paquete en Android Jarsigner -signal SHA1withRSA –digestalg SHA1 -keystore <key file> -storepass <password> -signedjar path/to/MyApp-Signed.apk Path/to/MyApp.apk <keystore alias> Zipalign –f –v 4 Path/to/MyApp-Signed.apk Path/to/MyApp-Aligned.apk
  • 23. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . RESTAURACIÓN DE PAQUETES NuGet NuGet Mono NuGet.exe restore path/to/App.sln Xamarin Components Mono Xamarin-component.exe restore path/to/App.sln
  • 24. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . XAMARIN.UITEST Podemos lanzarlos con cualquier runner de NUnit Nunit-console Path/to/TestAssembly.dll -xml TestResults.xml
  • 25. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿PORQUE CREAR UN SCRIPT? F# MAKE • F# Make o más conocido como FAKE, es un Sistema de automatización de Builds. • Similar a Make o Rake. • DSL sin necesidad de F#. Si necesitamos más funcionalidad que la disponible por defecto escribiremos código F# o referencias a librerías .NET. • Funciona en Windows y OSX.
  • 26. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . HOLA MUNDO FAKE F# MAKE #r "tools/FAKE/tools/FakeLib.dll" // include Fake lib open Fake Target "Test" (fun _ -> trace "Testing stuff..." ) Target "Deploy" (fun _ -> trace "Deploy stuff..." ) "Test" // define the dependencies ==> "Deploy" Run "Deploy"
  • 27. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . DEMO BUILDs automáticas de Apps Xamarin con Team City
  • 28. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ENTREGA DE LA APLICACIÓN HockeyApp • Podemos subir versiones de la App de manera automática desde nuestras Builds. • Podemos notificar a clientes o testers. • Recibir feedback. • Crashs. • API para desarrolladores.
  • 29. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . TEST DE UI. XAMARIN TEST CLOUD Más de 1200 dispositivos disponibles • Creamos tests desde Visual Studio simulando las interacciones propias del usuario. • Integración con TeamCity pero tambien con TFS, Jenkins, etc. • Obtenemos informaicón con capturas, rendimento, etc. que podemos incluir en reports de CI (Nightly).
  • 30. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . CONCLUSIONES INTEGRACIÓN CONTINUA ¿Qué hemos aprendido? • Automatización • Commits más frecuentes • Builds continuas, se detectan fallos más rápido • No se sube código que rompa la Build • Corrección de bugs con mayor facilidad y rapidez • Build en cualquier entorno destino
  • 31. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ¿PREGUNTAS y RESPUESTAS? Dudas? P&R
  • 32. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . ENLACE AL MATERIAL Slides y ejemplo https://github.com/jsuarezruiz/Events/tree/ master/CartujaDotNet/ALMdeando
  • 33. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . GRACIAS a TODOS Por vuestro tiempo! Javier Suárez Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 34. INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ . . INTEGRACIÓN CONTINUA CON APPS XAMARIN Como pasar Builds y test unitarios de Apps móviles multiplataforma Xamarin desde TeamCity.