1 of 12

Slide Notes

DownloadGo Live

Integración continua

Published on Jan 24, 2016

Integración continua

PRESENTATION OUTLINE

Integración continua

Análisis y diseño de sistemas 2 - USAC
Photo by tudedude

Objetivos

  • Describir el concepto de integración continua
  • Conocer y entender los elementos que integran un sistema de integración continua y su relación con un sistema de control de versiones
  • Identificar el valor de las prácticas recomendadas para implementar la integración continua
Photo by LordFerguson

Pasos en un escenario de CI

  • Commit en control de versiones
  • Servidor CI detecta cambio
  • Servidor CI corre script build
  • Servidor CI envía notificación resultado build
Photo by Esparta

Herramientas y actores

  • Desarrollador
  • Repositorio de control de versiones
  • Servidor CI
  • Script build
  • Mecanismo de retroalimentación
  • Máquina de build de integración

¿Qué puedo hacer en el script de build?

  • Compilación de código fuente
  • Integración de base de datos
  • Pruebas (unitarias, funcionales, stress)
  • Inspección
  • Deployment
  • Documentación y retroalimentación
Photo by jared

Definición integración continua

  • Integración: El acto de combinar artefactos separados de código fuente para determinar como funcionan como un todo
  • Integración continua: Práctica de desarrollo de software donde los miembros de un equipo integran su trabajo frecuentemente, usualmente cada persona integra como mínimo de forma diaria, generando múltiples integraciones por día

Definición build

  • De integración: Es el acto de combinar componentes de software (programas y archivos) en un sistema de software
  • Privado: Consiste en correr un build localmente antes de dar commit en el repositorio de control de versiones
  • De release: Obtiene software listo para liberar a los usuarios
Photo by ushtey

¿Qué se necesita para empezar?

  • Control de versiones
  • Build automatizado
  • Servidor CI
  • Acuerdo del equipo
Photo by Emi ♫

Prácticas para iniciar

  • Hacer checkin regularmente
  • Crear una suite automatizado de pruebas completo
  • Mantener proceso de build y pruebas corto
  • Administrar el workspace de desarrollo
Photo by Phil Roeder

Prácticas esenciales de implementación

  • No hacer commit en build roto
  • Siempre correr todos las pruebas de commit localmente antes de hacer commit
  • Esperar que pasen las pruebas de commit antes de avanzar
  • Nunca irse a casa con un build roto
  • Tomar responsabilidad de todas las fallas que resulten de sus cambios
  • TDD

Prácticas adicionales sugeridas

  • Refactoring
  • Builds fallidos por brechas de arquitectura
  • Builds fallidos para pruebas lentas
  • Builds fallidos por warnings y brechas de estilo de codificación