5. Desmontando a Jenkins
Integración continua para IOS
Juan Antonio Martín
codewriter.tumblr.com
@byjuanamn
6. Agenda
• Un poquito de Integración Continua (CI)
• Jenkins desde la distancia
• Gang of four
• Demo pero rapidita
7. CI
• ¿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.
8. CI
• 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. El mejor, pero para IOS está aún
verde :-(
• Y por supuesto Jenkins, código libre.
9. CI
• Un sistema de integración continua debe
proporcionar monitorización y metricas
• Complejidad de código
• Cobertura
• etc..
10. Jenkins
• Jenkins o Hudson....hasta el 2009 era un
producto de Sun, pero open source. En ese año
Oracle compró Sun y entre otras muchas cosas
pasó a ser el propietario del código fuente de
Hudson.
• En 2011, el proyecto se bifurca y una parte
importante de los desarrolladores del proyecto
crean Jenkins... Hudson es marca registrada de
Oracle
11. Jenkins: primeros pasos
• Instalación y configuración
sencilla
• Escrito en Java, pero no es
solo para Java
• más de 400 plugins para
extender el
comportamiento base
(Xcode, Git, Emma, etc...)
12. Jenkins: primeros pasos
desde la distancia
Instalación y configuración:
• Descargar de http://mirrors.jenkins-ci.org/war/latest/
jenkins.war
• Despues solo hay que abrir un terminal y escribir:
• $ java -jar jenkins.jar
• Y ya está....
24. Jenkins: primeros pasos
y ahora de cerca.
• Jenkins no tiene un Job especifico para xCode
• Tenemos que estar familiarizados con las herramientas
en linea de xCode para hacer los scripts necesarios para
automatizar la integración
• xcodebuild
• xcode-select
• xcrun
25. Jenkins: primeros pasos
y ahora de cerca.
• Para generar las builds
• Para generar la app para ser distribuida
27. Gang of Four
camino al Shangri La
• El flujo que podría seguir un proyecto para IOS un
escenario de integración continua estaría compuesto:
• xCode...
• Gestor de Versiones de código fuente, GitHub
• Herramienta de CI: Jenkins
• Distribución de Builds a usuarios de testing:
TestFlight
•
29. Trucos, Reflexiones y Q&A
• Trucos: Infraestructura,Versiones xCode,
certificados, scripting y blogs interesantes
• Reflexiones:
• Hay muchos entornos de CI, la mayoria muy validos
• Pero es muy importante aplicar TDD desde el inicio
del proyecto...