mi consola de javascript desconcertada de porque 3+4 = 34 falla!
Recursos
Resumen
Validar con acceptance test en staging es la forma más directa de asegurar que cada despliegue sea un candidato real a producción. Con un test mínimo usando curl y grep, puedes frenar el pipeline cuando el comportamiento no coincide con lo esperado y evitar sorpresas fuera de la infraestructura de pruebas.
¿Por qué acceptance test en staging valida el camino a producción?
En staging se usa una infraestructura similar a producción, por eso el objetivo no es si el despliegue es manual o parte de continuous deployments o continuous delivery, sino comprobar que el artefacto que llegó a staging es correcto y viable para producción. Si esta validación falla, todo el pipeline se detiene; es la señal inequívoca de que no debe seguir avanzando.
- Lo crítico es probar que el deploy a staging es correcto.
- El candidato viene de master con unit e integración ya verdes.
- Si el test no pasa, se apaga el pipeline en ese punto.
¿Cómo añadir un test con curl y grep al pipeline?
Se edita el job de “deploy web app staging” y se agrega una línea simple: obtener la URL del despliegue, invocar el endpoint y verificar el resultado. Se guarda la URL en una variable (por ejemplo, result_url) y se usa curl contra la ruta conocida: “add” es la única ruta y se espera que “tres más cuatro” sea 7. Si grep no encuentra “7”, falla el build.
# Obtiene la URL del deployment y la guarda en una variable. result_url=$(now -t "$NOW_TOKEN" ...) # Invoca la ruta 'add' y valida que el resultado contenga 7. curl "$result_url/add" | grep 7
- La variable result_url concentra la URL devuelta por now.
- La ruta add es el objetivo del test.
- Se verifica la salida esperada con grep 7.
- Si no aparece “7”, el comando sale con error y falla el build.
Para ver el fallo de forma intencional, basta cambiar la expectativa a algo que no coincide (por ejemplo, “34” en lugar de “7”) y volver a ejecutar el mismo deploy; verás un failure claro y el indicador visual en rojo.
# Ejemplo de validación que forzará el fallo. curl "$result_url/add" | grep 34
¿Qué estrategias aceleran la validación en el pipeline?
Para no repetir trabajo, puedes reusar un tag existente al invocar now: si pasas un tag que ya está asociado, now devuelve la URL ya registrada para ese deployment. Así evitas un despliegue completo y haces la verificación al instante con curl + grep.
- Reusar un tag existente acelera la comprobación.
- curl consulta el endpoint y grep confirma el valor esperado.
- Éxito: “success” y todo sigue adelante.
- Falla: “failure”, la “bolita” en rojo y flujo detenido.
¿Tú cómo validarías tus rutas críticas en staging antes de producción? Comparte tu enfoque y ejemplos en los comentarios.
