SlideShare una empresa de Scribd logo
1 de 30
Jenkins
Desmontando a Jenkins
    Integración continua para IOS
         Juan Antonio Martín
        codewriter.tumblr.com
             @byjuanamn
Agenda

•   Un poquito de Integración Continua (CI)
•   Jenkins desde la distancia
•   Gang of four
•   Demo pero rapidita
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.
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.
CI

•   Un sistema de integración continua debe
    proporcionar monitorización y metricas
    •   Complejidad de código
    •   Cobertura
    •   etc..
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
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...)
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á....
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
Jenkins: primeros pasos
       desde la distancia
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
Jenkins: primeros pasos
                    y ahora de cerca.


•   Para generar las builds




•   Para generar la app para ser distribuida
Gang of Four
  camino al Shangri La
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

•
Demo
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...
Referencias


•   http://kohsuke.org
•   http://jenkins-ci.org

Más contenido relacionado

La actualidad más candente

Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Demian Raschkovan
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioOsvaldo
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
 
Gestión Agil de Entornos de Despliegue en la Nube
Gestión Agil de Entornos de Despliegue en la NubeGestión Agil de Entornos de Despliegue en la Nube
Gestión Agil de Entornos de Despliegue en la NubeErnesto Cardenas Cangahuala
 
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
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
App inventor jeison alberto casierra colegio católico
App inventor   jeison alberto casierra colegio católicoApp inventor   jeison alberto casierra colegio católico
App inventor jeison alberto casierra colegio católicojensie
 
An evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupAn evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupArkhotech
 
Proyecto de una aplicacion java swing para un agente bcp
Proyecto de una aplicacion java swing para un agente bcpProyecto de una aplicacion java swing para un agente bcp
Proyecto de una aplicacion java swing para un agente bcpComputo Pedro P Diaz
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con JenkinsCésar Hernández
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Demian Raschkovan
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
Curso de programación en Android - 02. instalación del sdk
Curso de programación en Android - 02. instalación del sdkCurso de programación en Android - 02. instalación del sdk
Curso de programación en Android - 02. instalación del sdkRene Cruz Flores
 
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...Marco Bellido
 

La actualidad más candente (20)

Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365
 
Pipeline de Integración continua
Pipeline de Integración continuaPipeline de Integración continua
Pipeline de Integración continua
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Gestión Agil de Entornos de Despliegue en la Nube
Gestión Agil de Entornos de Despliegue en la NubeGestión Agil de Entornos de Despliegue en la Nube
Gestión Agil de Entornos de Despliegue en la Nube
 
Go
GoGo
Go
 
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
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
App inventor jeison alberto casierra colegio católico
App inventor   jeison alberto casierra colegio católicoApp inventor   jeison alberto casierra colegio católico
App inventor jeison alberto casierra colegio católico
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
An evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro MeetupAn evening with... Continuous Integration and Bamboo intro Meetup
An evening with... Continuous Integration and Bamboo intro Meetup
 
Proyecto de una aplicacion java swing para un agente bcp
Proyecto de una aplicacion java swing para un agente bcpProyecto de una aplicacion java swing para un agente bcp
Proyecto de una aplicacion java swing para un agente bcp
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Scrum overview
Scrum overview Scrum overview
Scrum overview
 
Ionic framework UTPL
Ionic framework UTPLIonic framework UTPL
Ionic framework UTPL
 
Curso de programación en Android - 02. instalación del sdk
Curso de programación en Android - 02. instalación del sdkCurso de programación en Android - 02. instalación del sdk
Curso de programación en Android - 02. instalación del sdk
 
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...
¨Servermore or serverless.¨: Introducción a CI/CD desde dos filosofías de inf...
 

Destacado (20)

Ventajas y desventajas de las redes sociales
Ventajas y desventajas de las redes socialesVentajas y desventajas de las redes sociales
Ventajas y desventajas de las redes sociales
 
Trabajo final expresión oral y escrita
Trabajo final expresión oral y escritaTrabajo final expresión oral y escrita
Trabajo final expresión oral y escrita
 
La obesidad infantil en chile
La obesidad infantil en chileLa obesidad infantil en chile
La obesidad infantil en chile
 
Paola y vale 1101
Paola y vale 1101Paola y vale 1101
Paola y vale 1101
 
Efecto reflejo en el ojo ignacio y annie
Efecto reflejo en el ojo ignacio y annieEfecto reflejo en el ojo ignacio y annie
Efecto reflejo en el ojo ignacio y annie
 
Manual comprimir y descomprimir un archivo
Manual  comprimir y descomprimir un archivoManual  comprimir y descomprimir un archivo
Manual comprimir y descomprimir un archivo
 
JANI DUEÑAS: SU CONSAGRACIÓN EN VIÑA
JANI DUEÑAS: SU CONSAGRACIÓN EN VIÑAJANI DUEÑAS: SU CONSAGRACIÓN EN VIÑA
JANI DUEÑAS: SU CONSAGRACIÓN EN VIÑA
 
Practico 0 tema B_2014
Practico 0 tema B_2014Practico 0 tema B_2014
Practico 0 tema B_2014
 
Septima primaria
Septima primariaSeptima primaria
Septima primaria
 
Cirugia menor 2
Cirugia menor 2Cirugia menor 2
Cirugia menor 2
 
1+cant+¦n+balao
1+cant+¦n+balao1+cant+¦n+balao
1+cant+¦n+balao
 
1 troviano
1 troviano1 troviano
1 troviano
 
Verbo divino
Verbo divinoVerbo divino
Verbo divino
 
Cultura egipcia
Cultura egipciaCultura egipcia
Cultura egipcia
 
emprendimiento
emprendimiento emprendimiento
emprendimiento
 
Dirección
DirecciónDirección
Dirección
 
Adiviñas labregas
Adiviñas labregasAdiviñas labregas
Adiviñas labregas
 
Ponte en su lugar
Ponte en su lugarPonte en su lugar
Ponte en su lugar
 
Idea de negocio
Idea de negocioIdea de negocio
Idea de negocio
 
Unidad1 1
Unidad1 1Unidad1 1
Unidad1 1
 

Similar a Desmontando a Jenkins :-)

Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Motorola Mobility - MOTODEV
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins armolinamilla
 
App inventor jeison alberto casierra colegio catolico
App inventor   jeison alberto casierra colegio catolicoApp inventor   jeison alberto casierra colegio catolico
App inventor jeison alberto casierra colegio catolicojensie
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayMario IC
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilJosé Antonio Sandoval Acosta
 
Tech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttlerTech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttlerSantex Group
 
Topicos Avanzados de Programacion - Unidad 5 programacion movil
Topicos Avanzados de Programacion -  Unidad 5 programacion movilTopicos Avanzados de Programacion -  Unidad 5 programacion movil
Topicos Avanzados de Programacion - Unidad 5 programacion movilJosé Antonio Sandoval Acosta
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_javaSaviotec
 

Similar a Desmontando a Jenkins :-) (20)

Bye bye jenkins welcome bots
Bye bye jenkins welcome botsBye bye jenkins welcome bots
Bye bye jenkins welcome bots
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
App inventor jeison alberto casierra colegio catolico
App inventor   jeison alberto casierra colegio catolicoApp inventor   jeison alberto casierra colegio catolico
App inventor jeison alberto casierra colegio catolico
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbday
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
 
Tech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttlerTech Meetup: Jenkins, the moody buttler
Tech Meetup: Jenkins, the moody buttler
 
Topicos Avanzados de Programacion - Unidad 5 programacion movil
Topicos Avanzados de Programacion -  Unidad 5 programacion movilTopicos Avanzados de Programacion -  Unidad 5 programacion movil
Topicos Avanzados de Programacion - Unidad 5 programacion movil
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Tutorial de-c
Tutorial de-cTutorial de-c
Tutorial de-c
 
Tutorial de-c
Tutorial de-cTutorial de-c
Tutorial de-c
 
Tutorial de- c. ++
Tutorial de- c. ++ Tutorial de- c. ++
Tutorial de- c. ++
 
Tutorial de-c ++
Tutorial de-c ++Tutorial de-c ++
Tutorial de-c ++
 
Tutorial de-c ++
Tutorial de-c ++Tutorial de-c ++
Tutorial de-c ++
 

Más de Juan Antonio Martin

Más de Juan Antonio Martin (8)

Ios y azure apps como churros
Ios y azure apps como churrosIos y azure apps como churros
Ios y azure apps como churros
 
Piezas para construir un ecommerce para mobile
Piezas para construir un ecommerce para mobilePiezas para construir un ecommerce para mobile
Piezas para construir un ecommerce para mobile
 
Introducción a CloudKit
Introducción a CloudKitIntroducción a CloudKit
Introducción a CloudKit
 
Backend i os
Backend i osBackend i os
Backend i os
 
Instruments 3 en 1
Instruments 3 en 1Instruments 3 en 1
Instruments 3 en 1
 
Parse intro
Parse introParse intro
Parse intro
 
Google analytics sdk ios
Google analytics sdk iosGoogle analytics sdk ios
Google analytics sdk ios
 
Cloud en iOS: alternativas para desarrollar nuevas Apps
Cloud en iOS: alternativas para desarrollar nuevas AppsCloud en iOS: alternativas para desarrollar nuevas Apps
Cloud en iOS: alternativas para desarrollar nuevas Apps
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 

Último (12)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Desmontando a Jenkins :-)

  • 1.
  • 2.
  • 3.
  • 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á....
  • 13. Jenkins: primeros pasos desde la distancia
  • 14. Jenkins: primeros pasos desde la distancia
  • 15. Jenkins: primeros pasos desde la distancia
  • 16. Jenkins: primeros pasos desde la distancia
  • 17. Jenkins: primeros pasos desde la distancia
  • 18. Jenkins: primeros pasos desde la distancia
  • 19. Jenkins: primeros pasos desde la distancia
  • 20. Jenkins: primeros pasos desde la distancia
  • 21. Jenkins: primeros pasos desde la distancia
  • 22. Jenkins: primeros pasos desde la distancia
  • 23. Jenkins: primeros pasos desde la distancia
  • 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
  • 26. Gang of Four camino al Shangri La
  • 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 •
  • 28. Demo
  • 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...
  • 30. Referencias • http://kohsuke.org • http://jenkins-ci.org

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n