150 likes | 292 Views
Integración Continua AltNetHispano. Carlos Peix (@carlospeix) http://carlospeix.com/. Andres Vettori (@andresvettori) http://weblogs.asp.net/andresv. Jose F. Romaniello (@jfroma) http://jfromaniello.blogspot.com/. Vicenç Garcia (@vgaltes) http://devnettips.blogspot.com/. Agenda.
E N D
Integración Continua AltNetHispano Carlos Peix (@carlospeix) http://carlospeix.com/ Andres Vettori (@andresvettori) http://weblogs.asp.net/andresv Jose F. Romaniello (@jfroma) http://jfromaniello.blogspot.com/ Vicenç Garcia (@vgaltes) http://devnettips.blogspot.com/
Agenda • Integración automatizada • Elementos • Políticas de release • Políticas de branching
Integración automatizada • ¿Por qué? • Reduce riesgos • Reduce trabajo repetitivo • Evita pérdida de tiempo corriendo pruebas • Facilita tener el software “siempre listo” • Maximiza la visibilidad sin esfuerzo • Genera confianza en el equipo y el cliente
Integración automatizada • ¿Cómo? ¿Cuándo? • Al principio del proyecto • Primero lo mas sencillo, luego agrego • Sobre un servidor dedicado (Fuera VS!!!) • Todos monitorean (CCTray o similar)
Elementos • Source control • Buildautomation • Buildscheduler (CruiseControl.NET, TeamCity, Hudson, TFS) • Políticas de branching • Practicas relacionadas
Source control • Elegir la herramienta correcta • Subversion • Git o Hg (distribuidos) • TFS • src-2010-01-03.zip no es source control! • SourceSafe ya dejémoslo tranquilo! • Elegir una política de branching adecuada a la política de release
Buildautomation • Es la parte mas importante! • NAnt, MSBuild, Maven, PowerShell? • Todas las herramientas se parecen • Todas son extensibles • Elijan la que mas les guste • Ejemplo…
Buildscheduler • CruiseControl.NET, TFS, TeamCity, Hudson • Por lo menos tiene que saber leer el repositorio y disparar el build • Casi todos • muestran estadísticas • muestran el resultado del build bien detallado • avisan cuando algo salió mal • Ejemplo…
Prácticas relacionadas • Commits frecuentes • ColectiveCodeOwnership • Commits frecuentes • Unittesting • Commits frecuentes • Test para los bugs • Commits frecuentes
Políticas de branching • Lo tradicional: trunk/tags/branches • Dependen de la política de release • Software que se distribuye: potencialmente se requiere dar soporte a mas de una versión • Software que se ofrece como servicio (SaaS): suele mantenerse una única versión
Referencias • http://martinfowler.com/bliki/FeatureBranch.html • http://www.cmcrossroads.com/bradapp/acme/branching/branch-policy.html • http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.cc_proj.doc/c_bntr_plnbrstrat.htm • http://martinfowler.com/articles/continuousIntegration.html • http://integratebutton.com/
? Preguntas Carlos Peix (@carlospeix) http://carlospeix.com/ Andres Vettori (@andresvettori) http://weblogs.asp.net/andresv Jose F. Romaniello (@jfroma) http://jfromaniello.blogspot.com/ Vicenç Garcia (@vgaltes) http://devnettips.blogspot.com/