Add CI/CD support for automated tunnel deployment
Some checks failed
deploy-tunnel / deploy (push) Failing after 1s

- setup-ci.sh: Script no interactivo que verifica archivos de config
- Workflow actualizado para ejecutar setup-ci.sh antes del deploy
- Los archivos credentials.json y .env persisten en el workspace del runner
- Solo requiere setup.sh manual la primera vez en el servidor
- Documentación actualizada con instrucciones para CI/CD
This commit is contained in:
2025-10-05 02:24:38 -06:00
parent 2c245ea531
commit 2b0f9ec49d
4 changed files with 83 additions and 18 deletions

View File

@@ -150,24 +150,42 @@ El contenedor se conecta a la red `principal` para poder comunicarse con Traefik
Este repositorio incluye un workflow de Gitea Actions (`.gitea/workflows/deploy.yml`) que automáticamente despliega el tunnel cuando haces push a `main`.
**¿Qué hace el workflow?**
1. Verifica que existan `credentials.json` y `.env`
1. Ejecuta `setup-ci.sh` para verificar que existan `credentials.json` y `.env`
2. Descarga la última imagen de `cloudflare/cloudflared`
3. Detiene el stack actual
4. Levanta el stack actualizado
5. Muestra los logs del tunnel
**Setup inicial en el servidor:**
### Setup inicial para CI/CD
En el servidor donde corre el gitea-runner, ejecuta el setup una sola vez:
**Primera vez en el servidor donde corre el gitea-runner:**
```bash
# El gitea-runner clonará el repo automáticamente
# Solo necesitas ejecutar setup.sh la primera vez
# 1. El runner clonará el repo automáticamente en su workspace
# 2. SSH al servidor y navega al workspace del runner
cd /ruta/donde/runner/clona/el/repo
# 3. Ejecuta setup.sh UNA SOLA VEZ (requiere login interactivo)
./setup.sh
```
Una vez configurado, cada `git push` actualizará automáticamente el tunnel.
El script creará `credentials.json` y `.env` que **persisten** en el workspace del runner entre ejecuciones.
**De ahí en adelante:**
- Cada `git push` ejecuta el workflow automáticamente
- `setup-ci.sh` verifica que los archivos existan
- Si existen, continúa con el deploy
- Si no existen, el workflow falla con instrucciones
### (Opcional) Variables de entorno en Gitea Secrets
Puedes configurar secrets en Gitea para el workflow (aunque actualmente no son necesarios con el enfoque de setup manual):
```
Settings > Secrets > Actions:
- CLOUDFLARE_ACCOUNT_ID: tu-account-id
- CLOUDFLARE_API_TOKEN: tu-api-token
```
**Nota**: `credentials.json` y `.env` se generan localmente y NO se commitean al repo (están en `.gitignore`), por seguridad.