¿Qué orden tiene más sentido en un pipeline de CI/CD?
Opciones
- Desplegar en prod, luego ejecutar los tests y luego construir la imagen
- Lint y unit tests, build, tests de integración, staging, smoke tests, prod (Opción correcta)
- Build, desplegar en prod y después hacer lint del código
- Desplegar en staging solo los viernes y luego ejecutar todos los tests
Respuesta
Lint y unit tests → construir la imagen → tests de integración → desplegar en staging → smoke tests → desplegar en prod
Por qué
Ejecuta primero las comprobaciones más rápidas y baratas para encontrar problemas en segundos (fail fast): linting y unit tests.
Luego construye el artefacto (imagen Docker) UNA vez, ejecuta los tests de integración más lentos, despliega en staging y haz smoke tests.
Por último promueve esa misma imagen a producción, para que lo que probaste sea exactamente lo que entregas.
Recuerda
Primero lo barato; construye una vez; promueve el mismo artefacto.