Módulo 7: CI Integration con GitHub Actions

Módulo 7: CI Integration con GitHub Actions

Módulo 7: CI Integration con GitHub Actions

Descripción de la cápsula

Tienes una test suite completa. Unit tests, integration tests, E2E tests, mocks, fixtures, coverage ≥90%. Pero si esos tests solo corren cuando tú ejecutas pytest manualmente en tu laptop, eventualmente dejas de correrlos. Un deadline aprieta, "solo este push sin tests", y de repente tienes bugs en producción que tus tests habrían detectado.

CI (Continuous Integration) resuelve esto. Los tests corren automáticamente en cada push, en cada PR, sin excepción. Si un test falla, el pipeline bloquea el merge — ningún código roto llega a main. Es la garantía de que tus tests importan.

Este módulo conecta todo lo que construiste en los módulos anteriores con GitHub Actions. Claude Code genera el workflow YAML, tú configuras triggers, matrix testing, y caching. Al final, tu repositorio tiene CI profesional: tests automáticos, coverage reports, y protección contra merges inseguros.


Contexto del Módulo

¿Dónde estamos?

Este es el Módulo 7 — primero de Phase 3 (Proyecto Final).

Lo que ya sabes (Phases 1 y 2):

  • ✅ Spec-first, unit tests, test pyramid (Phase 1)
  • ✅ TDD workflow, coverage, mocking, validation loops (Phase 2)

Lo que falta: Automatizar la ejecución de tests y preparar el proyecto final.

¿Hacia dónde vamos?

Phase 1: Fundamentos TDD con AI ✅
Phase 2: Workflows de Testing ✅

Phase 3: Proyecto Final
├── Módulo 7: ← ESTÁS AQUÍ — CI con GitHub Actions
└── Módulo 8: → Proyecto integrador TDD-complete

Después de este módulo, solo queda el proyecto final donde integras absolutamente todo.


Objetivo Profesional

Configurar un pipeline de CI con GitHub Actions que corra automáticamente toda tu test suite en cada push y PR.

Al final de este módulo podrás:

  • ✅ Escribir un workflow YAML de GitHub Actions para pytest
  • ✅ Configurar triggers: push, pull_request, workflow_dispatch
  • ✅ Usar matrix testing para múltiples versiones de Python
  • ✅ Publicar coverage reports como artifacts
  • ✅ Implementar caching de dependencias pip
  • ✅ Configurar fail-fast para bloquear merges inseguros
  • ✅ Generar workflow YAML con Claude Code

Progresión del Módulo

Mapa del Módulo

CápsulaTemaQué aprenderás
02GitHub Actions fundamentalsWorkflows, jobs, steps, runners, YAML syntax
03pytest en CICorrer pytest en GitHub Actions, reporting, artifacts
04Matrix testing y cachingMúltiples versiones de Python, caching de pip, optimización
05Coverage en CI y proteccionesCoverage reports, branch protection, fail-fast
06Proyecto: CI pipeline funcionalPipeline completo con tests, coverage, matrix, caching

Flujo de aprendizaje

Primero entenderás los fundamentos de GitHub Actions (cápsula 02): cómo funcionan los workflows, qué es un job, qué son los steps, y la sintaxis YAML.

Luego integrarás pytest (cápsula 03): correr tus tests existentes en CI, ver resultados, publicar reportes.

Después optimizarás (cápsula 04): matrix testing para validar en múltiples versiones de Python y caching para builds rápidos.

La cápsula 05 agrega coverage y protecciones: reportes de coverage en CI, branch protection rules, y fail-fast.

En el proyecto (cápsula 06) construirás un pipeline completo y funcional para un repositorio real.


Conexión con Proyecto

Proyecto de este módulo: CI pipeline funcional

Configurarás GitHub Actions para un repositorio con la test suite que construiste en módulos anteriores. El pipeline incluye:

  • Tests automáticos en push y PR
  • Matrix testing (Python 3.10, 3.11, 3.12)
  • Coverage report publicado como artifact
  • Caching de pip para builds rápidos
  • Branch protection que bloquea merge si tests fallan

Conexión con proyecto final (Módulo 8)

El proyecto final requiere CI funcional como parte de la entrega. El pipeline que configuras aquí es el que usarás para la aplicación del Módulo 8.


Límites: Qué NO Se Hará en Este Módulo

  • ❌ CD (Continuous Deployment) — Solo CI: tests automáticos, no deployment
  • ❌ Docker en CI — No usamos containers para tests
  • ❌ Otros proveedores de CI — Solo GitHub Actions
  • ❌ Infraestructura avanzada — No Kubernetes, no cloud deployment
  • ❌ Pre-commit hooks profundos — Mencionamos pero no profundizamos

Evidencia de Éxito

Al terminar este módulo, sabrás que tuviste éxito si:

  • ✅ Tu repositorio tiene un workflow que corre en cada push
  • ✅ Los tests corren en al menos 2 versiones de Python
  • ✅ El coverage report se genera automáticamente
  • ✅ Un PR con tests que fallan es bloqueado
  • ✅ El pipeline usa caching y tarda <3 minutos

Resumen

  • ✅ CI garantiza que tus tests corren en cada push — sin excepción
  • ✅ GitHub Actions es el estándar para CI en proyectos de GitHub
  • ✅ Matrix testing valida en múltiples versiones de Python
  • ✅ Coverage en CI visibiliza la calidad de tu test suite
  • ✅ Claude Code puede generar workflow YAML basándose en tu proyecto
  • ✅ Este módulo prepara el CI del proyecto final

Próxima cápsula: GitHub Actions Fundamentals — workflows, jobs, steps, YAML.


Recursos Adicionales

  1. GitHub Actions Documentation - Documentación oficial
  2. GitHub Actions for Python - CI para Python
  3. pytest with GitHub Actions - Integración pytest + CI
  4. GitHub Branch Protection - Protección de branches

Módulo 7 — Testing with Claude Code Guide De tests locales a automatización profesional