Este documento introduce los nuevos servicios de integración continua en Xcode 5 y OS X Server, incluyendo Bots que automatizan la compilación y pruebas. Explica cómo configurar un servidor para alojar repositorios de código, crear Bots para proyectos específicos, y supervisar compilaciones y resultados de pruebas a través de una aplicación web.
2. 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
3. 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.
4. 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.
5. Integración Continua
•
Un sistema de integración continua debe proporcionar
monitorización y métricas
•
Complejidad de código
•
Cobertura
•
etc……
6. 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
7. 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
10. 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
11. 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
12. Nuevos Amigos
•
OS X Server (Mavericks).
•
Nuevo servicio para Xcode
•
Centralización de testing
•
Repositorios
•
Dispositivos
13. 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
14. 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
15. Nuevos Amigos
•
OS X Server (Mavericks).
•
Repositorios
•
Repositorios alojados en el propio servidor (solo git)
•
Repositorios remotos SVN o Git (ssh, https)
17. 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
20. Nuevos Amigos
•
Xcode
•
Nuevas opciones de configuración de cuentas
•
Creación de Bots
•
Informes de las builds y resultado de los Test
•
•
Descargar de builds
•
Resultado de los test
•
•
Commits y logs
etc.
Integración con control de versiones
26. 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
27. Nuevos Amigos
•
Web Application
•
Ver los mismo informes
•
Tenemos posibilidad de ver y distribuir builds
•
•
solo para developers
Vista de panel de control (Scoreboard)