Despliegue
Estado: despliegue MANUAL (Gitea Actions OFF)
CRÍTICO. El workflow
.github/workflows/deploy.ymldescribe un pipeline automático con disparadorpushamain(.github/workflows/deploy.yml:4-7), pero Gitea Actions está APAGADO en este repo (manifiesto del workspace; memoria del proyectonavarro-bores-migrado a VitePress sin deploy). El repo se aloja en Gitea (localhost:3000/arturo/navarro-bores.com,git remote), no en GitHub, y el workflow está en formato GitHub Actions dentro de.github/workflows/. Consecuencia: tras hacer push NO hay redespliegue automático; publicar es una acción MANUAL. El blog en vivo puede estar desfasado respecto al repo.
El último cambio relevante fue la migración del blog a VitePress (commit 1df1cee, feat: migracion del blog a VitePress), aún no redesplegado de forma automática.
Destino
| Parámetro | Valor | Evidencia |
|---|---|---|
| Plataforma | Google Cloud Run (managed) | .github/workflows/deploy.yml:44 |
| Proyecto GCP | homelab-466309 | :10 |
| Región (Cloud Run) | europe-west1 | :11 |
| Servicio | personal-blog | :12 |
| Imagen | europe-southwest1-docker.pkg.dev/homelab-466309/idcolab/personal-blog | :13 |
| Acceso | --allow-unauthenticated (público) | :45 |
| Puerto | 8080 | :46, nginx.conf:2, Dockerfile:19 |
| Recursos | 256Mi memoria, 1 CPU | :47-48 |
| Escala | min-instances=0, max-instances=2 | :49-50 |
| Service Account | blueup-docs-deployer@homelab-466309.iam.gserviceaccount.com | :51 |
| Secreto requerido | GCP_SA_KEY | :25 |
| DNS | Google Cloud DNS | README.md:10 |
Nota de discrepancia: el registro de imágenes está en europe-southwest1 mientras que el servicio Cloud Run se despliega en europe-west1 (:11 vs :13). El path de la imagen usa el repositorio Artifact Registry idcolab (namespace heredado del proyecto idcolab, hoy archivado en Gitea).
Pasos del pipeline (definido en deploy.yml)
- Checkout del repo (
:19-20). - Autenticación a GCP con
GCP_SA_KEY(:22-25). setup-gcloudygcloud auth configure-docker europe-southwest1-docker.pkg.dev(:27-31).docker build(multistage) con etiquetas:shay:latest, y push de ambas (:33-37).gcloud run deploycon los parámetros de la tabla (:39-52).
Para reproducirlo a mano, el operador ejecuta estos mismos pasos localmente (build, push, gcloud run deploy).
Imagen de producción
Build multistage (ver tecnico/02-stack-build.md): node:20-alpine compila VitePress, nginx:alpine sirve .vitepress/dist en el puerto 8080 (Dockerfile:1-20). nginx aplica clean URLs, cabeceras de seguridad, gzip y caché de estáticos a 1 año (nginx.conf).
Rama por defecto
main(salida degit branch; disparador del workflow en:6).