El problema
El deploy manual no dejaba una relación confiable entre el código revisado, el artefacto generado y la versión que estaba en producción.
La decisión
Usar Forgejo como origen y Jenkins para ejecutar Gitleaks, npm ci, astro build, empaquetado del directorio dist y despliegue atómico por SSH.
El resultado
Cada publicación queda identificada por commit, archivada como artefacto, analizada antes del build y validada con un request HTTP al dominio público.
La iniciativa une Forgejo, Jenkins y el servidor de publicación en un flujo único. El pipeline corre en contenedores de Node para que la instalación de dependencias y el build usen un entorno controlado. Si falla el escaneo, el build o el smoke test, el deploy no se considera exitoso.
El artefacto se genera antes de tocar la versión publicada. La operación de despliegue prepara una versión nueva, la reemplaza y conserva la anterior para que el cambio sea rastreable. Así, publicar deja de ser una secuencia manual y pasa a ser una capacidad de la plataforma.