GitHub Actions

GitHub Action de monitorización web

Añade un paso después de tu despliegue. Relvato ejecuta tus monitores en el sitio en vivo y hace fallar el job cuando uno encuentra un problema: un checkout roto, una página que se ve distinta, un plugin vulnerable, un retroceso de SEO, una página legal que falta.

La Action usa la API de Relvato, incluida en todos los planes, también en Free. Necesita un sitio con la propiedad demostrada y una clave de API de acceso completo.

Resumen del job

🚨 Relvato: 1 monitor found a problem on My Shop

Site: https://myshop.example · Open in Relvato

MonitorResultSeverity
Uptime✅ passedView run
SSL✅ passedView run
Guest checkout🚨 found a problemcriticalView run

Relvato checked the live site. A run started here counts like Run now in the dashboard, so a problem it finds is also alerted on the channels set in Alert settings.

El resumen del job muestra cada monitor con su resultado y un enlace a la ejecución en Relvato. Está en inglés; el sitio es un ejemplo.
Configuración

Lista en tres pasos

No hay que instalar ninguna app en GitHub: la Action llama a la API de Relvato con una clave que guardas como secreto del repositorio.

01

Demuestra que el sitio es tuyo

Añade el sitio en Relvato y demuestra su propiedad con el plugin de WordPress, un registro DNS o una metaetiqueta. La API solo ejecuta monitores en sitios con la propiedad demostrada.

02

Guarda una clave de acceso completo como secreto

En Relvato, abre «API access» y crea una clave con acceso completo. En GitHub, abre Settings → Secrets and variables → Actions y guárdala como secreto del repositorio con el nombre RELVATO_API_KEY.

03

Añade el paso después del despliegue

Añade Relvato/relvato-action@v1 a tu workflow con la clave y tu sitio. Espera a las ejecuciones y hace fallar el job cuando un monitor encuentra un problema.

- uses: Relvato/relvato-action@v1
  with:
    api-key: ${{ secrets.RELVATO_API_KEY }}
    site: myshop.example

site admite el dominio del sitio (myshop.example) o su id de sitio en Relvato. Una clave de solo lectura no puede iniciar ejecuciones.

Workflow

Ejecútala cuando el despliegue ya esté en vivo

Relvato ejecuta tus monitores contra la dirección del sitio, así que el paso tiene que ir después de que el despliegue llegue a producción. No puede revisar un despliegue de vista previa antes de que se promueva.

Después del job de despliegue en el mismo workflow

El job verify espera a deploy con needs. Aquí solo ejecuta los monitores de flujo (checkout, inicios de sesión, formularios) y solo hace fallar el job ante un problema alto o crítico.

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - run: ./deploy.sh

  verify:
    needs: deploy
    runs-on: ubuntu-latest
    steps:
      - uses: Relvato/relvato-action@v1
        with:
          api-key: ${{ secrets.RELVATO_API_KEY }}
          site: myshop.example
          group: flow            # checkout, logins, forms
          min-severity: high

Después de un despliegue a producción en Vercel, Netlify u otro host que informe de los despliegues a GitHub

El workflow arranca con deployment_status y se ejecuta cuando el despliegue a producción ha terminado bien: cuando ya está en vivo, no antes de la promoción. El nombre del entorno es el que informe tu host (Vercel usa Production).

on: deployment_status

jobs:
  verify:
    if: github.event.deployment_status.state == 'success' && github.event.deployment.environment == 'Production'
    runs-on: ubuntu-latest
    steps:
      - uses: Relvato/relvato-action@v1
        with:
          api-key: ${{ secrets.RELVATO_API_KEY }}
          site: myshop.example
Conviene saber

Qué hace una ejecución desde tu workflow

Mira el sitio en vivo

Relvato ejecuta los monitores contra la dirección de tu sitio. Pon el paso después de que el despliegue llegue a producción: un despliegue de vista previa no se puede revisar antes de promoverlo.

Cuenta como «Run now»

Cada ejecución cuenta para las ejecuciones mensuales de tu plan, una por monitor. Un problema que encuentre también se avisa por los canales de «Alert settings», como cualquier ejecución que inicias a mano.

No ejecutado es un aviso

Si un firewall o una protección antibots bloqueó a Relvato, el sitio no respondió o el plugin de WordPress está desactualizado, el monitor es un aviso, no un fallo: no dice nada de tu despliegue.

Solo lo que un despliegue puede afectar

Usa group para ejecutar un grupo de monitores, como flow o security, y min-severity para fijar la gravedad más baja que debe hacer fallar el job.

Referencia

Entradas

EntradaPor defectoQué hace
api-key—Una clave de API de Relvato con acceso completo. Obligatoria.
site—El dominio del sitio (myshop.example) o su id de sitio en Relvato. Obligatoria.
grouptodos los monitoresSolo un grupo de monitores: uptime, flow (checkout, inicios de sesión, formularios), security, design, performance, seo, domain o compliance.
fail-onissueissue: falla cuando un monitor encuentra un problema. any: también cuando un monitor no pudo ejecutarse (un firewall bloqueó a Relvato, el sitio estaba caído) o se acabó el tiempo. never: solo informa.
min-severitylowLa gravedad más baja que hace fallar el job: warning, low, medium, high o critical.
timeout-minutes20Cuánto esperar. Los monitores de un sitio se ejecutan de uno en uno, así que un conjunto completo puede tardar varios minutos.

Salidas

SalidaQué contiene
resultpassed, issues, not-run o timeout
issuesCuántos monitores encontraron un problema de min-severity o más
not-runCuántos monitores no pudieron ejecutarse
runsCada ejecución en JSON: id, monitor, outcome, severity, url
site-urlLa página del sitio en Relvato

Informar sin fallar

Con fail-on: never el job no falla; un paso posterior puede leer la salida result.

      - uses: Relvato/relvato-action@v1
        id: relvato
        with:
          api-key: ${{ secrets.RELVATO_API_KEY }}
          site: myshop.example
          fail-on: never
      - run: echo "Relvato says ${{ steps.relvato.outputs.result }}"
Sin workflow

¿Prefieres no escribir un workflow?

En un sitio añadido como «Any website / AI-built app», puedes conectar el repositorio de GitHub desde el que despliegas con la GitHub App de Relvato, o añadir el webhook de despliegue en GitLab, Netlify, Railway o Ghost. Relvato vuelve a ejecutar entonces los monitores del sitio en cada push o despliegue, y un problema te llega por tus alertas de siempre. La Action es para cuando quieres el resultado en el propio workflow y que el job falle por él.

Conecta tu sitio a GitHub →

FAQ

La GitHub Action, en preguntas

¿Qué planes pueden usar la GitHub Action?

Todos, Free incluido: la Action usa la API de Relvato, que tienen todos los planes. Cada ejecución cuenta para las ejecuciones mensuales de tu plan, una por monitor, así que usa group para ejecutar solo los monitores que un despliegue puede afectar.

¿Puede revisar una vista previa de Vercel o Netlify antes de que se promueva?

No. Relvato ejecuta tus monitores contra la dirección del sitio, así que ve lo que está en vivo. Ejecuta el paso después de que el despliegue llegue a producción, por ejemplo con deployment_status cuando el despliegue a producción haya terminado bien.

¿Qué pasa cuando un monitor no pudo ejecutarse?

Es un aviso en el job, no un fallo: un firewall o una protección antibots bloqueó a Relvato, el sitio no respondió o el plugin de WordPress está desactualizado, y eso no dice nada de tu despliegue. Usa fail-on: any para que el job también falle por ello.

¿Un problema que encuentre también envía una alerta?

Sí. Una ejecución iniciada desde un workflow cuenta como «Run now» en el panel, así que un problema que encuentre también se avisa por los canales que configuraste en «Alert settings» (email, Slack, Teams, Discord, Telegram, PagerDuty, webhook).

¿Por qué necesita una clave de acceso completo?

Una clave de solo lectura puede leer resultados, pero no iniciar ejecuciones. Crea una clave de acceso completo en «API access» en Relvato y guárdala como secreto del repositorio con el nombre RELVATO_API_KEY.

¿Cuánto tarda?

Los monitores de un sitio se ejecutan de uno en uno, así que un conjunto completo puede tardar varios minutos. La Action espera hasta timeout-minutes (20 por defecto). Si para entonces sigue habiendo ejecuciones en curso, el resultado es timeout, que solo hace fallar el job con fail-on: any.

Ya conecté GitHub a Relvato. ¿Necesito también la Action?

Solo si quieres el resultado en el workflow. La GitHub App vuelve a ejecutar tus monitores en cada push y te avisa por tus alertas. La Action se ejecuta cuando tu workflow lo indica, muestra cada monitor en el resumen del job y puede hacer fallar el job.

¿Puedo hacer lo mismo sin la Action?

Sí, con la API REST: POST /api/v1/sites/{id}/scan (opcionalmente con {"group": "flow"}), luego consulta GET /api/v1/runs?siteId={id} hasta que cada ejecución esté finished, y lee su outcome (ok, issue, not-run) y su severity.

Relacionado

Más formas de trabajar con Relvato

Sabe que el despliegue salió bien antes de que lo noten tus visitantes

Demuestra la propiedad del sitio, crea una clave de acceso completo y añade un paso a tu workflow.