la presetnación
Download
Report
Transcript la presetnación
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
2
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
3
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)
4
Elementos
Source control
Build automation
Build scheduler (CruiseControl.NET,
TeamCity, Hudson, TFS)
Políticas de branching
Practicas relacionadas
5
Elementos
6
Source control
Elegir la herramienta correcta
–
–
–
–
–
Subversion
Git o Hg (distribuidos)
TFS
src-2010-01-03.zip no es source control!
Source Safe ya dejémoslo tranquilo!
Elegir una política de branching adecuada a
la política de release
7
Build automation
Es la parte mas importante!
NAnt, MSBuild, Maven, PowerShell?
Todas las herramientas se parecen
Todas son extensibles
Elijan la que mas les guste
Ejemplo…
8
Build scheduler
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…
9
Prácticas relacionadas
Commits frecuentes
Colective Code Ownership
Commits frecuentes
Unit testing
Commits frecuentes
Test para los bugs
Commits frecuentes
10
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
11
Un ejemplo
12
Otro ejemplo
13
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/
14
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/
15