Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Nuestros primeros pasos con Hudson 2011 Ing. José Díaz Díaz [email_address] @joedayz Skype: joedayz www.joedayz.pe
Preparando tu Entorno
Preparando tu entorno <ul><li>Necesitamos Java 6+.  ¿Cómo instalarlo? </li></ul><ul><li>Tener un Servidor SVN propio o ext...
El entorno de integración continua
El entorno de Integración  Continua <ul><li>El desarrollo de  proyectos agiles  necesita prevenir problemas y regresiones ...
El entorno de Integración  Continua <ul><li>Es casi inviable ejecutar los unit test en la maquina de cada desarrollador po...
El entorno de Integración Continua <ul><li>La respuesta a nuestros problemas es un entorno de integración continua para as...
 
El entorno de Integración Continua <ul><li>Existen muchas arquitecturas de integración continua. En la figura siguiente , ...
 
Ejecutando Hudson   java –jar hudson-2.0.1.war
 
 
 
Configurando Hudson <ul><li>Hudson </li></ul><ul><ul><li>Configuramos Maven </li></ul></ul><ul><ul><li>Configuramos JDK  <...
Configurando JDK y Maven
Primer Job Crear un proyecto de estilo libre.
Configurando SVN Es un  cron syntax :  minuto(0-59), hora (0-23), día del mes (1-31), mes(1-12) y día de la semana (0-7,  ...
Tareas Maven
Job Creado
Aplicación de Ejemplo
Obteniendo el Código de Ejemplo <ul><li>Usando el  SpringSource Tool Suite  con su plugin  subclipse . </li></ul><ul><li>D...
 
 
Test <ul><li>Luego de bajar el proyecto, lo que haremos es modificar una clase que haga que nuestros tests fallen. </li></...
T_USUARIO es el nombre real.
Hudson reacciona
Error al detalle
 
Mas reportes - Javadocs <ul><li>Los comentarios javadoc son un recurso importante de documentación técnica. </li></ul><ul>...
 
Javadoc:javadoc <ul><li>Luego de configurarlo aparecerá el link en la web </li></ul>
 
Añadiendo coverage y otras métricas <ul><li>Con hudson es posible publicar muchos reportes útiles aparte del javadoc </li>...
Añadiendo coverage y otras métricas <ul><li>Cobertura ( http://cobertura.sourceforge.net/ ) </li></ul><ul><li>Nuestro proy...
Instalando plugin para Cobertura <ul><li>En hudson necesitamos instalar el plugin para cobertura  </li></ul><ul><li>Ingres...
Plugin Cobertura
 
Usar Cobertura <ul><li>Para configurar coverage metrics de código en nuestro proyecto necesitamos hacer dos cosas:  </li><...
Tarea Maven
Informes de Cobertura <ul><li>En la sección de “Coverage Metrics Target” vamos a definir los niveles mínimos aceptables de...
 
Informes de Cobertura <ul><li>Ahora dispararemos un build manual y ver los resultados </li></ul>
Aparece Link de Cobertura.
 
 
Referencias <ul><li>Propias </li></ul><ul><ul><li>Joedayz.org </li></ul></ul><ul><ul><li>Joedayz.pe </li></ul></ul><ul><ul...
Gracias Bruce!!
Contacto Av. Guillermo Prescott 385, San Isidro Lima – Perú (511) 987500273 www.joedayz.pe
Upcoming SlideShare
Loading in …5
×

Continuous Integration

2,602 views

Published on

Introducción y aplicación de Integración Continua con Hudson.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Continuous Integration

  1. 1. Nuestros primeros pasos con Hudson 2011 Ing. José Díaz Díaz [email_address] @joedayz Skype: joedayz www.joedayz.pe
  2. 2. Preparando tu Entorno
  3. 3. Preparando tu entorno <ul><li>Necesitamos Java 6+. ¿Cómo instalarlo? </li></ul><ul><li>Tener un Servidor SVN propio o externo </li></ul><ul><ul><li>Google Code Hosting . ¿Cómo usarlo? </li></ul></ul><ul><ul><li>SourceRepo.com ¿Cómo usarlo? </li></ul></ul><ul><ul><li>Slik Subversion ¿Cómo usarlo? </li></ul></ul><ul><li>Hudson </li></ul><ul><ul><li>Descargar de http://hudson-ci.org/ </li></ul></ul><ul><ul><li>Vídeo de instalación </li></ul></ul><ul><ul><li>Ejecutar standalone: java –jar hudson-2.0.1.war </li></ul></ul>
  4. 4. El entorno de integración continua
  5. 5. El entorno de Integración Continua <ul><li>El desarrollo de proyectos agiles necesita prevenir problemas y regresiones en el menor tiempo posible. </li></ul><ul><li>Algunas practicas se deberían establecer para conseguir este objetivo: </li></ul><ul><ul><li>Desarrollar test unitarios </li></ul></ul><ul><ul><li>Realizar commits frecuentes del código fuente </li></ul></ul><ul><ul><li>Deployar la aplicación en un entorno integrado </li></ul></ul><ul><ul><li>Ejecutar los test </li></ul></ul><ul><li>Estas buenas practicas necesitan un gran compromiso de parte de los desarrolladores para lograr los resultados esperados. </li></ul>
  6. 6. El entorno de Integración Continua <ul><li>Es casi inviable ejecutar los unit test en la maquina de cada desarrollador porque esto minimizará sus recursos (memoria, IDE, tiempo) </li></ul><ul><li>Es un desperdicio tener un recurso asignado para deployar la aplicación y que este verificando que no hay regresión por la ejecución de los tests. </li></ul>
  7. 7. El entorno de Integración Continua <ul><li>La respuesta a nuestros problemas es un entorno de integración continua para asegurarnos que las pruebas unitarias se han realizado a lo largo de todo el proceso de desarrollo de la aplicación. </li></ul><ul><li>Existen muchos entornos de integración continua. Los más conocidos son Hudson , Continuum, Cruise Control, Team City . </li></ul>
  8. 9. El entorno de Integración Continua <ul><li>Existen muchas arquitecturas de integración continua. En la figura siguiente , por ejemplo, tenemos Hudson , SVN , Maven y GlassFish . </li></ul><ul><li>No es la única y no hay una mejor que otra. Si te permite cumplir los objetivos planteados inicialmente SIRVE . </li></ul>
  9. 11. Ejecutando Hudson java –jar hudson-2.0.1.war
  10. 15. Configurando Hudson <ul><li>Hudson </li></ul><ul><ul><li>Configuramos Maven </li></ul></ul><ul><ul><li>Configuramos JDK </li></ul></ul><ul><ul><li>Ver video de instalación </li></ul></ul><ul><li>Creando nuestro primer Job </li></ul><ul><ul><li>Usaremos la aplicación http://code.google.com/p/joedayz-poo/source/checkout </li></ul></ul>
  11. 16. Configurando JDK y Maven
  12. 17. Primer Job Crear un proyecto de estilo libre.
  13. 18. Configurando SVN Es un cron syntax : minuto(0-59), hora (0-23), día del mes (1-31), mes(1-12) y día de la semana (0-7, Con 0 y 7 es Domingo)
  14. 19. Tareas Maven
  15. 20. Job Creado
  16. 21. Aplicación de Ejemplo
  17. 22. Obteniendo el Código de Ejemplo <ul><li>Usando el SpringSource Tool Suite con su plugin subclipse . </li></ul><ul><li>Descargamos el código fuente de https ://joedayz-poo.googlecode.com/svn/trunk/ </li></ul><ul><li>El proyecto esta mavenizado. Ver el POM.xml para ver los plugins que necesitas instalar para trabajar con Hudson sin problemas. </li></ul>
  18. 25. Test <ul><li>Luego de bajar el proyecto, lo que haremos es modificar una clase que haga que nuestros tests fallen. </li></ul><ul><li>Nota: Como estamos usando maven y el plugin surefire. Tus tests deben terminar así:    * **/*Test.java      * **/Test*.java      * **/*TestCase.java  </li></ul><ul><li>Sino te dirá que no hay test. </li></ul>
  19. 26. T_USUARIO es el nombre real.
  20. 27. Hudson reacciona
  21. 28. Error al detalle
  22. 30. Mas reportes - Javadocs <ul><li>Los comentarios javadoc son un recurso importante de documentación técnica. </li></ul><ul><li>UmlGraph es una herramienta que te permite producir Javadoc con diagramas UML. </li></ul><ul><li>Hudson puede integrar Javadoc directamente a la app web. De esta forma todos pueden acceder al último Javadoc facilmente. </li></ul><ul><li>Tenemos que modificar en Hudson </li></ul>
  23. 32. Javadoc:javadoc <ul><li>Luego de configurarlo aparecerá el link en la web </li></ul>
  24. 34. Añadiendo coverage y otras métricas <ul><li>Con hudson es posible publicar muchos reportes útiles aparte del javadoc </li></ul><ul><li>Vamos a usar Cobertura para añadir coverage metrics. </li></ul><ul><li>Code coverage nos dará los indicadores de cuanto de nuestro código es ejecutando durante nuestros tests – útil para encontrar áreas donde el código no ha sido testeado. </li></ul><ul><li>Lo mejor para ver si nuestro team esta aplicando buenas practicas como TDD o BDD . </li></ul>
  25. 35. Añadiendo coverage y otras métricas <ul><li>Cobertura ( http://cobertura.sourceforge.net/ ) </li></ul><ul><li>Nuestro proyecto ya ha sido configurado para trabajar con Cobertura </li></ul>Pom.xml
  26. 36. Instalando plugin para Cobertura <ul><li>En hudson necesitamos instalar el plugin para cobertura </li></ul><ul><li>Ingresamos a http://localhost:8080/pluginManager/ </li></ul>
  27. 37. Plugin Cobertura
  28. 39. Usar Cobertura <ul><li>Para configurar coverage metrics de código en nuestro proyecto necesitamos hacer dos cosas: </li></ul><ul><ul><li>Primero crear un Cobertura Coverage data en formato XML que Hudson usará. </li></ul></ul><ul><ul><li>Luego configurar Hudson para que muestre los reportes de coverage </li></ul></ul>
  29. 40. Tarea Maven
  30. 41. Informes de Cobertura <ul><li>En la sección de “Coverage Metrics Target” vamos a definir los niveles mínimos aceptables de code coverage. </li></ul><ul><li>En la figura que viene estipulamos que menos de 50% de test coverage es “inestable” (indicado por un circulo amarillo) y notificar al team al respecto. </li></ul>
  31. 43. Informes de Cobertura <ul><li>Ahora dispararemos un build manual y ver los resultados </li></ul>
  32. 44. Aparece Link de Cobertura.
  33. 47. Referencias <ul><li>Propias </li></ul><ul><ul><li>Joedayz.org </li></ul></ul><ul><ul><li>Joedayz.pe </li></ul></ul><ul><ul><li>http://www.facebook.com/JoeDayzUniversity </li></ul></ul><ul><li>Otras </li></ul><ul><ul><li>Continuous Integration: Improving Software Quality and Reducing Risk </li></ul></ul><ul><ul><li>Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) </li></ul></ul><ul><ul><li>Agile Testing </li></ul></ul><ul><li>http://www.agile-peru.net/ </li></ul><ul><li>http://agile-spain.com/ </li></ul>
  34. 48. Gracias Bruce!!
  35. 49. Contacto Av. Guillermo Prescott 385, San Isidro Lima – Perú (511) 987500273 www.joedayz.pe

×