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.