31
Bye, Bye Jenkins. Welcome Bots Integración Continua en Xcode 5 T1 - C1 { “me”: {“speaker” : “Juan A. Martin”, “company”: “CloudOnMobile”, “contact”: { “mail”:”[email protected]”, "twitter":"@byjuanamn", "skype":"by-juanamn" } }

Bye bye jenkins welcome bots

Embed Size (px)

DESCRIPTION

Visión general de Xcode 5 y Bots, como hacer integración continua sin usar herramientas de terceros.

Citation preview

Page 1: Bye bye jenkins welcome bots

Bye, Bye Jenkins. Welcome Bots

Integración Continua en Xcode 5

T1 - C1

{ “me”: {“speaker” : “Juan A. Martin”, “company”: “CloudOnMobile”, “contact”: { “mail”:”[email protected]”, "twitter":"@byjuanamn", "skype":"by-juanamn" }

}

Page 2: Bye bye jenkins welcome bots

Indice • Visión rápida de IC

• Conceptos generales Bots

• Los nuevos amigos

• OS X Server + Xcode 5

• Configuración

• Web Scoreboard

• Demo (micro)

• Siguientes pasos

Page 3: Bye bye jenkins welcome bots

Integración Continua

• ¿qué es integración continua?

• Modelo informático propuesto por Martin Fowler que consiste en hacer integraciones automáticas de un proyecto con la mayor frecuencia posible, con el fin de detectar fallos lo antes posible.

• Es integración el binomio “Compilación+Testing” de todo un proyecto.

Page 4: Bye bye jenkins welcome bots

Integración Continua • El proceso es sencillo: el código del proyecto es descargado

desde un gestor de versiones en un punto común y a través de alguna “aplicación” es realizada la integración

• Hay varias “aplicaciones” en el mercado:

• Bamboo de Atlasian

• Continuum The Apache Software Foundation

• CruiseControl, codigo abierto (para Java) y CruiseControl.NET

• Team Foundation Server 2012, Microsoft.Jenkins, código libre.

Page 5: Bye bye jenkins welcome bots

Integración Continua

• Un sistema de integración continua debe proporcionar monitorización y métricas

• Complejidad de código

• Cobertura

• etc……

Page 6: Bye bye jenkins welcome bots

Integración Continua

• ¿Por qué Integración Continua?

• Testing en multiples versiones de OS y dispositivos

• Punto único de construcción, análisis y test de nuestros proyectos

• Descargar y centralizar en un servidor estas tareas tan poco glamurosas

Page 7: Bye bye jenkins welcome bots

Integración Continua

• ¿Por qué Integración Continua?

• Disponer de una información historíca de nuestros proyectos

• Centralizar la distribución de nuestras builds

Page 8: Bye bye jenkins welcome bots

Concetos

Page 9: Bye bye jenkins welcome bots

Conceptos

Page 10: Bye bye jenkins welcome bots

Conceptos

• Schema: es el esquema del proyecto (settings, link, etc..)

• Bots: Analiza, construye, testea, genera build. Todo de manera planificada

• Integration: Es la ejecución de un bot

Page 11: Bye bye jenkins welcome bots

Conceptos• Define “qué” tiene que construir

• recopila información del proyecto y del control de versiones

• Cuando construir

• Bajo demanda (manual), dale al play!

• Planificado, p.e. cada 10 minutos

• Después de un Commit -> este es el que mola

Page 12: Bye bye jenkins welcome bots

Nuevos Amigos

• OS X Server (Mavericks).

• Nuevo servicio para Xcode

• Centralización de testing

• Repositorios

• Dispositivos

Page 13: Bye bye jenkins welcome bots

Nuevos Amigos• OS X Server (Mavericks).

• Emplea Bonjour

• Gestión sencilla para crear y administrar bots que generen builds para iOS y Mac

• Configuración de acceso para creadores de bots y consumidores

• Solo es necesario incluir a los miembros del equipo de desarrollo en la configuración de este servicio

Page 14: Bye bye jenkins welcome bots

Nuevos Amigos

• OS X Server (Mavericks).

• Dispositivos

• Podemos añadir dispositivos

• Podemos preparar los test para ser ejecutamos en multiples dispositivos con distintas versiones de OS

Page 15: Bye bye jenkins welcome bots

Nuevos Amigos

• OS X Server (Mavericks).

• Repositorios

• Repositorios alojados en el propio servidor (solo git)

• Repositorios remotos SVN o Git (ssh, https)

Page 16: Bye bye jenkins welcome bots

Nuevos Amigos

• Demo configuración Server

Page 17: Bye bye jenkins welcome bots

Nuevos Amigos• OS X Server (Mavericks) resumen demo.

• Instalar Server

• Activar el servicio Xcode

• Seleccionar Xcode.app

• Añadir miembros del equipo

• Añadir repos

Page 18: Bye bye jenkins welcome bots

Nuevos Amigos

Page 19: Bye bye jenkins welcome bots

Nuevos Amigos

Page 20: Bye bye jenkins welcome bots

Nuevos Amigos• Xcode

• Nuevas opciones de configuración de cuentas

• Creación de Bots

• Informes de las builds y resultado de los Test

• Commits y logs

• Descargar de builds

• Resultado de los test

• etc.

• Integración con control de versiones

Page 21: Bye bye jenkins welcome bots

Nuevos Amigos

• Demo Xcode

Page 22: Bye bye jenkins welcome bots

Nuevos Amigos

• Configuración de cuentas en Xcode

Page 23: Bye bye jenkins welcome bots

Nuevos Amigos

Page 24: Bye bye jenkins welcome bots

Nuevos Amigos

Tenemos que hacer Checkout del

repositorio que queremos usar

Page 25: Bye bye jenkins welcome bots

Nuevos Amigos

Si tenemos Bots para el proyecto,

esta sería su apariencia.

Page 26: Bye bye jenkins welcome bots

Nuevos Amigos

• Web Application

• Podemos ver nuestro proyecto fuera de Xcode!

• Tenemos acceso a todos los Bots de nuestro servidor de integración

• Podemos crear y editar Bots

Page 27: Bye bye jenkins welcome bots

Nuevos Amigos

• Web Application

• Ver los mismo informes

• Tenemos posibilidad de ver y distribuir builds

• solo para developers

• Vista de panel de control (Scoreboard)

Page 28: Bye bye jenkins welcome bots

Nuevos Amigos

• Web Application

• Vista de panel de control (Scoreboard)

• Dont panic! esto no es útil para un usuario de negocio

Page 29: Bye bye jenkins welcome bots

Siguientes Pasos

• Integración con otras piezas claves en la fase de desarrollo

• Testflight

• Crashlytics

Page 30: Bye bye jenkins welcome bots

Nuevos Amigos

• Demo web application

Page 31: Bye bye jenkins welcome bots

Muchas gracias!{ “me”: {“speaker” : “Juan A. Martin”, “company”: “CloudOnMobile”, “contact”: { “mail”:”[email protected]”, "twitter":"@byjuanamn", "skype":"by-juanamn" }

}