¿Qué es CI/CD? Integración y entrega continuas explicadas de forma sencilla
CI/CD es una forma de publicar software en la que cada cambio de código se compila, se prueba automáticamente y, si pasa, se prepara para su publicación o se publica. CI (integración continua) significa que los cambios se unen con frecuencia y se revisan con pruebas automáticas cada vez. CD (entrega o despliegue continuo) significa que los cambios que pasan se empaquetan y se llevan hacia los usuarios con poco o ningún trabajo manual.
La idea es sencilla: detectar los errores a los pocos minutos de cometerlos, no semanas después, cuando un cliente los encuentra.
Por qué importa CI/CD cuando creas con IA
Los creadores de apps con IA hacen cambios en el código muy rápido. Un solo prompt puede tocar diez archivos. Esa velocidad es fantástica hasta que un cambio en la página de pago rompe en silencio la página de inicio de sesión, y nadie se da cuenta hasta que un usuario te escribe.
CI/CD es la red de seguridad justo para eso. En lugar de confiar en que cada cambio está bien, un pipeline ejecuta las mismas comprobaciones cada vez:
- ¿La app sigue compilando sin errores?
- ¿Siguen pasando las pruebas automáticas?
- ¿El código cumple las reglas del proyecto (tipos, formato, controles de seguridad)?
Si alguna comprobación falla, el cambio se detiene antes de llegar a los usuarios. Cuanto más rápido cambia tu código, más valiosa es una comprobación que nunca se cansa ni se salta un paso.
Una analogía cotidiana
Piensa en una panadería que vende pan a las tiendas cada mañana.
- Sin CI/CD, cada panadero trabaja en sus propios ajustes de receta durante una semana, y el viernes por la noche todos combinan sus cambios y esperan que el pan siga subiendo. Cuando no sube, nadie sabe qué cambio lo causó.
- Con CI, cada pequeño cambio de receta se hornea enseguida como prueba y se revisa: sabor, peso, forma. Un mal cambio se detecta el mismo día, y sabes exactamente cuál fue.
- Con CD, las hogazas que superan la inspección salen directamente en la furgoneta de reparto, empaquetadas y etiquetadas siempre igual, en lugar de que alguien empaquete cajas a mano a las cinco de la mañana.
La inspección no hace a los panaderos mejores. Hace que sus errores salgan baratos.
Cómo funciona un pipeline de CI/CD
Un pipeline es una lista de pasos que un servicio de CI/CD ejecuta automáticamente cuando ocurre algo, normalmente cuando alguien sube código a un repositorio como GitHub. Un pipeline típico es así:
| Paso | Qué ocurre | Qué detecta |
|---|---|---|
| 1. Disparador | Se sube código o se abre una pull request | — |
| 2. Instalación | Una máquina nueva descarga el código y sus dependencias | Paquetes que faltan o están rotos |
| 3. Compilación | La app se compila o se empaqueta | Errores de sintaxis y de tipos, importaciones rotas |
| 4. Pruebas | Se ejecutan las pruebas automáticas | Funciones que ya no funcionan |
| 5. Comprobaciones | Linting, formato, análisis de seguridad | Problemas de estilo, paquetes vulnerables conocidos, claves filtradas |
| 6. Despliegue en staging | La app va a una copia de prueba de producción | Problemas que solo aparecen en un entorno real |
| 7. Despliegue en producción | La app se publica, automáticamente o tras aprobación | — |
Cada paso se ejecuta en una máquina limpia, no en el portátil de alguien, así que «en mi ordenador funciona» deja de ser una excusa. Si un paso falla, el pipeline se detiene y avisa a quien hizo el cambio.
Los pasos se definen en un archivo de configuración que vive junto al código. En GitHub Actions, por ejemplo, es un archivo YAML en la carpeta .github/workflows del repositorio.
Entrega continua frente a despliegue continuo
El «CD» es ambiguo, y la gente lo usa en los dos sentidos:
| Entrega continua | Despliegue continuo | |
|---|---|---|
| Las pruebas se ejecutan automáticamente | Sí | Sí |
| La versión se empaqueta automáticamente | Sí | Sí |
| Se publica automáticamente | No — una persona pulsa «publicar» | Sí — cada cambio que pasa se publica |
| Adecuado para | La mayoría de equipos pequeños, apps con usuarios de pago | Equipos con buena cobertura de pruebas y monitorización |
El despliegue continuo solo funciona bien si las pruebas son buenas. Si tus pruebas no cubren el pago, el despliegue continuo publicará felizmente un pago roto.
Un ejemplo práctico: una app de reservas con pipeline
Imagina una app de reservas para un salón de belleza, con su código en un repositorio de GitHub. Pides a un creador de apps con IA que «añada un 10% de descuento para clientes que vienen por primera vez».
- El cambio se sube a una rama nueva y se abre una pull request.
- El pipeline arranca. Instala paquetes y compila la app: esto pasa.
- Ejecuta las pruebas. Una de ellas, «un cliente que vuelve paga precio completo», falla: el descuento se aplica a todos.
- La pull request muestra una cruz roja. El cambio no se puede fusionar.
- Pides a la IA que lo corrija. Sube una corrección; el pipeline se vuelve a ejecutar y todo pasa.
- El cambio se fusiona. El pipeline lo despliega en un entorno de staging, donde pruebas una reserva de prueba.
- Lo apruebas, y se despliega en producción.
Sin el pipeline, el paso 3 habría ocurrido en los bolsillos de tus clientes.
Términos clave
| Término | Significado |
|---|---|
| Pipeline | La secuencia automática de pasos que se ejecuta con cada cambio. |
| Compilación (build) | Convertir el código fuente en algo que puede ejecutarse. |
| Prueba automática | Código que comprueba que otro código hace lo que debe. |
| Pull request (PR) | Un cambio propuesto que otros (y el pipeline) revisan antes de fusionarlo. Consulta qué es GitHub. |
| Rama | Una línea de cambios separada, para que el trabajo en curso no afecte al código principal. |
| Staging | Una copia privada de tu app que replica producción, para revisar cambios antes de que los vean los usuarios. |
| Producción | La app en vivo que usan tus usuarios. |
| Rollback (reversión) | Volver a la versión anterior que funcionaba cuando una publicación sale mal. |
| Build verde / rojo | Una ejecución del pipeline que pasó / falló. |
Ideas erróneas habituales
- «CI/CD significa que mi app está probada». Un pipeline solo ejecuta las pruebas que tienes. Si no hay pruebas, CI solo demuestra que la app compila, nada más. Pide a tu IA que escriba pruebas para los flujos más importantes.
- «CI/CD es solo para grandes empresas». Herramientas alojadas como GitHub Actions se configuran con un archivo corto, y los equipos pequeños las usan todo el tiempo. Lo que cuesta esfuerzo son las pruebas, no las herramientas.
- «Un despliegue automático significa que nadie comprueba nada». Los buenos pipelines añaden comprobaciones, no las quitan. Muchos equipos mantienen un paso de aprobación humana antes de producción.
- «Si el pipeline está en verde, la app funciona». Significa que pasaron las comprobaciones automáticas. Aun así, deberías probar el cambio tú mismo, idealmente en una vista previa o en staging.
- «CI/CD sustituye las copias de seguridad». No es así. Una migración de base de datos mala que pasa las pruebas puede dañar datos reales. Mantén copias de seguridad y una forma de revertir los cambios.
Qué pedir a tu creador de IA
- «Escribe pruebas automáticas para el registro, el inicio de sesión y el pago, y muéstrame cómo ejecutarlas.»
- «Configura un flujo de GitHub Actions que instale dependencias, compile la app y ejecute las pruebas en cada pull request.»
- «Añade una comprobación de tipos y un linter al pipeline, y haz que falle si hay errores.»
- «Explícame en lenguaje sencillo qué hace cada paso del pipeline.»
- «¿Qué pasa si un despliegue falla a medias? ¿Cómo lo revierto?»
- «Comprueba que no haya secretos escritos en el repositorio ni impresos en los registros del pipeline.»
Si tu app usa claves de API, el pipeline también las necesita, guardadas como secretos cifrados en la herramienta de CI, nunca en el archivo de configuración. Consulta variables de entorno y secretos.
CI/CD y Mythex
Mythex no ejecuta un pipeline de CI por ti, pero cubre varias de las mismas necesidades a su manera:
- Puntos de control. Tras cada turno exitoso del agente, Mythex guarda un punto de control de git, y Volver a este punto revierte el proyecto si un cambio salió mal. Consulta Chat.
- App Testing. Escribe
/testy el agente recorre tu vista previa en vivo como si fuera un usuario e informa de los flujos rotos; es útil antes de cada publicación. Consulta App Testing. - Publicar es un paso deliberado. Los cambios aparecen primero en la vista previa privada; tu app pública solo se actualiza cuando vuelves a publicar. Se parece más a la entrega continua que al despliegue continuo.
- Sincronización con GitHub (Pro). Sincroniza el proyecto con un repositorio de GitHub y podrás añadir tus propios flujos de GitHub Actions para ejecutar pruebas en cada subida. Consulta GitHub y exportación.
Para una lista de lo que conviene probar a mano antes de salir en vivo, consulta cómo probar tu app antes del lanzamiento, y para trabajar con control de versiones, cómo usar Git con una app creada con IA.
Preguntas
¿Qué significa CI/CD?
CI significa integración continua: cada cambio de código se une con frecuencia y se compila y prueba de forma automática. CD significa entrega continua o despliegue continuo: los cambios que pasan las pruebas se preparan automáticamente para publicarse (entrega) o se publican a los usuarios sin un paso manual (despliegue).
¿Cuál es la diferencia entre entrega continua y despliegue continuo?
Con la entrega continua, cada cambio que pasa el pipeline está listo para publicarse, pero una persona sigue decidiendo cuándo se pone en producción. Con el despliegue continuo, cada cambio que pasa se publica automáticamente, sin ningún paso de aprobación humana.
¿Necesito CI/CD para una app pequeña creada con IA?
No el primer día. Una app pequeña con unos pocos usuarios puede arreglárselas probando en una vista previa y publicando a mano. CI/CD se vuelve útil cuando varias personas modifican el código, cuando clientes reales dependen de la app o cuando sigues rompiendo cosas que antes funcionaban.
¿Qué herramientas se usan para CI/CD?
Las más comunes son GitHub Actions, GitLab CI/CD, CircleCI y Jenkins, además de los pipelines de despliegue integrados de las plataformas de alojamiento. Todas hacen el mismo trabajo básico: ejecutar automáticamente una lista de pasos cada vez que cambia el código.