Mike (@mikerb95)CodeByMike
Volver
/automatizacionesIngeniería

Lo que corre solo.

6 workflows de integración continua, 13 tareas programadas y los automatismos que dispara el propio tráfico. Abajo está el último resultado real de cada uno, leído de GitHub y de mi propia bitácora. No es una descripción de cómo debería funcionar.

corridas · 24 h
394
en verde
100%
tareas con pulso
11/13
en silencio ahora
0

Cada marca es una ejecución real anotada en la bitácora. Apunta un renglón para leerla.

Integración continua

¿Qué despierta a cada workflow?

Nada llega a producción sin pasar por aquí. La verificación posterior al despliegue puede revertir sola lo que acaba de publicarse.

  1. Pruebas con cobertura, build, end to end con Playwright y verificación del despliegue.

    Test + BuildPruebas con cobertura y build
    E2E (Playwright)Navegador real contra bases desechables
    Verificar deploy + rollbackTres comprobaciones; dos insanas reviertensolo en push a main
    en cada push · en cada pull requestlisto

    La etapa final espera hasta 8 minutos a que el endpoint de salud devuelva el commit recién desplegado, hace tres comprobaciones y revierte sola si dos de las tres salen insanas. También reporta sus métricas al panel del sitio.

  2. Securitysecurity.ymlúltima real · ok · hace 1 d

    Auditoría de dependencias y análisis estático con CodeQL.

    en cada push · en cada pull request · semanallisto

    Además del push, corre sola los domingos, para que una vulnerabilidad publicada después del último commit no espere al siguiente.

  3. Accessibilitya11y.ymlúltima real · ok · hace 1 d

    Auditoría de accesibilidad con axe sobre las páginas públicas.

    en cada push · en cada pull requestlisto
  4. DASTdast.yml

    Análisis dinámico con ZAP contra el despliegue de vista previa de la rama.

    en cada pull requestno despierta

    Solo en pull request: necesita un sitio desplegado al que atacar, y ese es el preview que Vercel publica por rama.

  5. Mutation testingmutation.ymlúltima real · ok · hace 2 d

    Introduce fallos a propósito en el código y comprueba si alguna prueba se entera.

    semanal · a manono despierta

    La cobertura dice que una línea se ejecutó; esto dice si romperla se detecta. Corre los domingos porque es caro.

  6. Distribuir notadistribute-note.ymlúltima real · ok · hace 14 d

    Al publicar un artículo, lo anuncia y avisa a los buscadores.

    en cada push · a manolisto

    Solo se dispara si el push toca `src/content/notes/`.

El recorrido es ilustrativo; la insignia de cada fila es el último resultado real en GitHub.

Tareas programadas

El calendario, contra la bitácora.

El plan que uso permite una ejecución diaria por tarea, así que lo que necesita más frecuencia lo dispara un programador externo contra el mismo endpoint, con el mismo secreto. Cada ejecución autorizada queda anotada: un cron que deja de dispararse no produce un error, produce silencio.

TareaCuándoOrigenQué haceSilencioÚltima
analista-matutino11:30vercelUn agente de IA revisa la seguridad de las últimas 24 horas y manda el resumen al celular.Si falla: Nadie lee la noche con criterio: los eventos siguen registrados, pero sin resumen.hace 13 h
resumen-semanallunes 12:00vercelJunta las cifras de la semana anterior, una IA las redacta en un resumen corto y el titular llega al celular.Si falla: La semana no se resume; las cifras siguen en cada panel.hace 1 d
backup03:00vercelCopia de seguridad diaria de la base.Si falla: Se envejece la última copia disponible para restaurar.hace 22 h
portal-demo-reseed04:00vercelRepuebla la base de la demo pública con datos ficticios.Si falla: La demo va acumulando lo que hayan dejado los visitantes.hace 21 h
monitor-rollup05:00vercelResume los sondeos del día en una fila por monitor.Si falla: El historial de disponibilidad deja de consolidarse y consultarlo se vuelve caro.hace 19 h
computo-rollup06:00vercelConsolida el consumo de cómputo medido en cada proyecto de cliente y avisa si la cuota gratis compartida de la cuenta va camino de agotarse.Si falla: El consumo se sigue midiendo, pero el mes en curso deja de reflejarlo y los avisos de cuota no salen hasta la siguiente pasada.hace 18 h
uptime-check07:00vercelSondeo de disponibilidad, refresco de certificados, gestión de incidentes y purga de historial.Si falla: Una caída deja de abrir incidente y nadie se entera.hace un momento
domain-check08:00vercelVigila el vencimiento de los dominios y avisa, sin repetir el aviso.Si falla: Un dominio puede vencer sin previo aviso.hace 17 h
indexnow08:30vercelReenvía el sitemap a los buscadores que admiten IndexNow.Si falla: El contenido nuevo tarda más en indexarse.hace 16 h
invoices-overdue09:00vercelMarca facturas vencidas y notifica.Si falla: Una factura vencida se queda figurando al día.hace 16 h
uptime-checkcada ~5 mincron-job.orgEl mismo sondeo, a la frecuencia que la monitorización necesita de verdad.Si falla: La resolución del monitoreo cae a una medición al día.hace un momento
security-rollupcada ~15 mincron-job.orgAgrega la última hora de eventos, contrasta contra la línea base y aplica el bloqueo automático.Si falla: La detección de anomalías se queda sin agregados con los que comparar.hace 5 min
sena-recordatorio12:00cron-job.orgRecordatorio de la calculadora de etapa productiva.Si falla: Se pierde el recordatorio del día.hace 13 h
marketing-enviocada 60 mincron-job.orgEnvía por lotes los correos de novedades en cola, solo dentro del horario que permite la ley y sin pasar del cupo diario.Si falla: Una campaña disparada se queda a medio enviar hasta que alguien pulse "Enviar lo pendiente" en el panel.sin registro en 48 h · en silencio

Automatismos del producto

Lo que dispara el propio tráfico.

Estos no los dispara un calendario ni un push, sino el propio tráfico.

Ejemplos ilustrativos: cada escena muestra el mecanismo, no un evento real.

Apertura y cierre de incidentes

Un sondeo fallido abre incidente; el primero que vuelve a salir bien lo cierra.

En cada sondeo

Bloqueo automático de abuso

Una intención inequívocamente maliciosa bloquea el origen, con salvaguardas para no bloquear a la propia infraestructura ni al administrador, y un tope por encima del cual avisa en vez de bloquear.

En línea con el request, y al agregar cada hora

Detección de anomalías

Compara la hora cerrada contra la línea base histórica y señala lo que se sale de rango.

Al cerrar cada hora

Modo respaldo del portal

Si la base no responde, el portal sirve un snapshot versionado y lo anuncia; se apaga solo cuando la base vuelve.

Al detectar la base caída

Reversión post-despliegue

Si el sitio recién publicado no responde sano, el pipeline revierte a la versión anterior y avisa.

Después de cada despliegue a producción

Purga de retención

El historial viejo se borra por capas para que la base no crezca sin límite.

Dentro de los crons de resumen